星期三, 6月 24, 2009

IEnumerable 的 Foreach

話說阿..程式寫久了,就開始懶了,能短的就給他短,能少的一定不會給他多..今天就在處理 IEnumerable 物件時,就找一下看有沒有Foreach這函式可以用..找半天..咪有..Confused..哇哩勒..這好用的東西沒得用..索性就給他寫一個..

public static class Helper
{
public static void Foreach<T>(this IEnumerable<T> source, Action<T> action)
{
foreach (var a in source)
{
action(a);
}
}
}

使用前~

using (NORTHWNDModel.NORTHWNDEntities db = new NORTHWNDModel.NORTHWNDEntities())
{
List<string> listArr = new List<string>();
var aaaa = db.Orders.Select(a => a.ShipName).Take(5);
//要用 foreach 跑跑跑
foreach (var a in aaaa)
{
listArr.Add(a);
}
Response.Write(string.Join("<br />", listArr.ToArray()));
}

使用後~

using (NORTHWNDModel.NORTHWNDEntities db = new NORTHWNDModel.NORTHWNDEntities())
{
List<string> listArr = new List<string>();
var aaaa = db.Orders.Select(a => a.ShipName).Take(5);
//用寫好的去跑
aaaa.Foreach(a => { listArr.Add(a); });
Response.Write(string.Join("<br />", listArr.ToArray()));
}

哈..看起來好像沒啥差..Embarrassed..不過寫起來感覺好很多..給各位參考啦..

參考:

星期二, 6月 23, 2009

Firefox 3.5 rc2 出啦..

目前 Firefox 已經是 3.5 的 rc2 版了..各位可以入手啦..新功能可以看底下的連結或是影片..

與 Firefox 3.5 RC2 的初次相遇

Thumbs-upThumbs-upThumbs-upThumbs-upThumbs-upThumbs-upThumbs-upThumbs-upThumbs-upThumbs-upThumbs-up...

星期三, 6月 17, 2009

用 Entity Framework 去抓取 EDM 的 class 和 property

常常有需要動態去知道 SQL 的 schema, 應為這樣我們才有機會把我們的程式寫的更活更抽象, 在傳統的方法可以參考我朋友puma的"利用SQL指令找出資料庫的資料表,資料表的欄位名,資料表的PK欄位"這篇文章來抓到想到的東西, 如果有在使用Entity Framework 的人來說..可以用下面這一段程式來讀取..

using (NORTHWNDModel.NORTHWNDEntities db = new NORTHWNDModel.NORTHWNDEntities())
{
var aaaa = db.MetadataWorkspace.GetItems(DataSpace.CSpace)
.Where(a => a.BuiltInTypeKind == BuiltInTypeKind.EntityType);
foreach (EntityType a in aaaa)
{
Response.Write("class: " + a.FullName + "<br />");

foreach (var b in a.Properties)
{
Response.Write("-----" + b.Name + ", " + b.TypeUsage.EdmType.Name + "<br />");
}
}
}

結果是這樣..

image

參考:

星期四, 6月 11, 2009

HyperLink設定圖片寬度

有在寫 web application 的 .net 工程師, 因該常常需要在圖片上設定超連結, 簡單說就是下面這一段程式碼

<a href="http://tw.msn.com" Target="_blank">
<img src="msn.jpg" width="20px" height="20px" border="0" />
</a>

而在這部份不知大家是直接組字串 rander 出 html 還是用 .net 提供的控制項來處理, 如果是用 HyperLink 控制項來做這需求, 可能會遇到一個問題, 就是圖片沒辦法設定寬度, 今天就提供我的解決方法來給大家參考,我會用 HyperLink 包住 Image 這樣就可以解決不能設硬圖片寬度的問題了

<asp:HyperLink ID="hypLink" runat="server" NavigateUrl="http://tw.msn.com" Target="_blank">
<asp:Image ID="imgLogo" runat="server" ImageUrl="msn.jpg" Width="20px" Height="20px" />
</asp:HyperLink>

看到這個大腸包小腸樣子, 忽然讓我發現 .net 其實蠻多控制項都是這樣搞的..Tongue out..

星期三, 6月 03, 2009

模糊取代字串大法..

今天有個需求,就是要處理網頁的 html 原始碼,就是要把某一些 tag 去掉,問題是那個網站當初又不是我寫的,裡面的 tag 大小寫亂亂混 , 一整個好像去眾人的程式拿過來在組裝一下,就給他衝了,不過 complain 歸 complain 事情還是要做,簡簡單單的幾個tag又不想用正規運算式去搞,有一個主意是想說把 html 原始碼全部改成大寫,之後再去取代,不過這樣拿到的原始碼就一整個變形了,又有點不是很爽快,查了一下msdn發現有一個 method 蠻不錯的,可以達到我要的目的,下面寫個範例給大家以後參考..

//我有一段亂亂的html
string aa = @"<div Class=wce>test1</div><diV class=wce>test2</Div><Div class=wce>test3</Div>";
//把前面的tag取代
aa = Regex.Replace(aa, "<div Class=wce>", "", RegexOptions.IgnoreCase);
//把後面的tag取代
aa = Regex.Replace(aa, "</div>", "", RegexOptions.IgnoreCase);
//完成
Response.Write(aa);

這方法簡單清爽..讚..TongueTongueTongueTongueTongueTongueTongueTongueTongue..

參考: