2010-01-27 83 views

回答

16

只是變量本身它聲明:

var query = from string text in collection 
      where text.Length > 5 
      select text.ToUpper(); 

這將轉化爲:

var query = collection.Cast<string>() 
         .Where(text => text.Length > 5) 
         .Select(text => text.ToUpper()); 
+0

我試圖在一個數字集合存儲爲字符串'var numbers = new [] {「1」,「2」,「3」,「4」,「5」}'但這個LINQ查詢'數字.Cast ().Where((int i,int index)=> index> 2 && i> 3);'拋出'InvalidCastException'。字符串「1」應該可以轉換爲數字1.不是嗎?如果這不起作用,那麼Cast操作符在LINQ查詢中真的有用嗎? – RBT 2016-07-27 23:42:23

+1

@RBT:不,你不能從一個字符串轉換爲一個int。你想從'numbers.Select(text => int.Parse(text))'開始,這樣你就可以使用'IEnumerable '。當Casts在普通代碼中有用時,'Cast'運算符很有用。 – 2016-07-28 06:06:12