.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; - 我不想要那个。我想要一个或多个匹配项和他们的索引。