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