C#在查询语法LINQ中选择双参数谓词形式?

时间:2015-05-12 14:38:14

标签: c# linq syntax fluent

.NET 4.0版,语言:C#(VS 2010)

C#"流利" LINQ的语法为Select提供了以下选项,其中谓词有两个参数 - 列表本身中的项目,以及列表中项目的索引

非常剥离了我正在做的事情的一般例子:

List<string> MyList = new List<string>{ "foo", "bar", "baz" };

var nodes = MyList.Select( 
    (item, indexInList) => 
    new XElement("p", new XAttribute("id", indexInList + 1 ), item)
);

输出是代表

的XElements
<p id=1>foo</p>
<p id=2>bar</p>
<p id=3>baz</p>

这有效,符合要求,没有问题。然而。我们的部门标准更喜欢查询语法,我个人觉得它更容易阅读。是否可以在查询语法中表达上述内容?

我的直觉是通过类比尝试以下内容,但VS根本不喜欢它。

var nodes = from (item, indexInList) in MyList
            select new XElement("p", new XAttribute("id", indexInList + 1), item);

我一直在谷歌来回搜索,我不断得到关于&#34;给定XYZ量词的问题,找到单个匹配项目的索引&#34; - 我不想要那个。我想要一个或多个匹配项他们的索引。

0 个答案:

没有答案