使用字符串时,linq中是否需要新关键字

Sam*_*r83 2 c# linq

var listOfStates = from n in _storageStates
                   select n.tag;
Run Code Online (Sandbox Code Playgroud)

如果n.tag是一个字符串,我需要使用new关键字.

var listOfStates = from n in _storageStates
                   select new {n.tag};
Run Code Online (Sandbox Code Playgroud)

我想不会因为字符串是内置类型而不是类,但我不确定.

Jon*_*eet 6

你经常看到的是:

var listOfStates = from n in _storageStates
                   select new { n.tag, n.foo };
Run Code Online (Sandbox Code Playgroud)

这会创建一个匿名类型,这是一种以强类型但有些特别的方式将多个值组合在一起的有用方法.您可以使用以下单个值执行此操作:

var listOfStates = from n in _storageStates
                   select new { n.tag };
Run Code Online (Sandbox Code Playgroud)

但通常这会使结果更难以使用而不是更容易.

请注意,匿名类型不限于在LINQ中使用,尽管这可能是最常遇到的地方.请按照早期的MSDN链接获取更多信息.