var listOfStates = from n in _storageStates
select n.tag;
如果n.tag是一個字符串,我需要使用new關鍵字。linq使用字符串時需要新的關鍵字
var listOfStates = from n in _storageStates
select new {n.tag};
我想不是因爲字符串是內置類型而不是類,但我不確定。
var listOfStates = from n in _storageStates
select n.tag;
如果n.tag是一個字符串,我需要使用new關鍵字。linq使用字符串時需要新的關鍵字
var listOfStates = from n in _storageStates
select new {n.tag};
我想不是因爲字符串是內置類型而不是類,但我不確定。
什麼你經常看到的是一樣的東西:
var listOfStates = from n in _storageStates
select new { n.tag, n.foo };
這將創建一個anonymous type這是一個有用的方式將多個值分組在一個強類型,但有點特別的方式。您可以與這樣一個值做到這一點:
var listOfStates = from n in _storageStates
select new { n.tag };
但通常,使結果更加努力與而不是容易的工作。
請注意,匿名類型不限於在LINQ中使用,儘管這可能是他們最常遇到的地方。按照更早的MSDN鏈接獲取更多信息。
你不需要新的關鍵字。你的第一個例子應該按預期工作。
// single field
var listOfStates = from n in _storageStates
select n.tag;
// multiple fields require, at least, an anonymous type
var listOfStatesAndCapitals = from n in _storageStates
select new { n.tag, n.capital };
不,除非你正在創建一個新的對象(如果你不是單個字段中選擇更多)不需要一個新的對象。 new
關鍵字可用於select
語句中,但必須將其用作有效表達式。下面的例子:
var listOfStates = from n in _storageStates
select new State(n.Tag);
的new
關鍵字也可以用來創建使用以下語法匿名類型:
var listOfStates = from n in _storageStates
select new { n.Tag };
不,你實際上並沒有創造不需要new
關鍵字:
您通常會在LINQ中使用新建立的匿名類型:http://msdn.microsoft.com/en-us/library/bb397696.aspx
不,不是必需的。 – 2012-01-06 20:46:36
'new'與LINQ無關。 – SLaks 2012-01-06 20:48:14
你嘗試過嗎?這將清除你的問題。 – mydogisbox 2012-01-06 20:48:25