如何使用 IEnumerable.Select 重新计算元素?

发布于 2024-11-01 09:55:04 字数 396 浏览 0 评论 0原文

IEnumerable<MyType> list = new List<MyType>{
    new{Num=0, Text="ABC"},
    new{Num=0, text="DEF"},
    new{Num=0, text="GHI"} }

我需要获取 Num 字段中的元素索引:

IEnumerable<MyType> result = new List<MyType>{
    new{Num=1, Text="ABC"},
    new{Num=2, text="DEF"},
    new{Num=3, text="GHI"} }

是否可以使用一些基于 LINQ 的构造来实现?

IEnumerable<MyType> list = new List<MyType>{
    new{Num=0, Text="ABC"},
    new{Num=0, text="DEF"},
    new{Num=0, text="GHI"} }

I need to get element index in Num field:

IEnumerable<MyType> result = new List<MyType>{
    new{Num=1, Text="ABC"},
    new{Num=2, text="DEF"},
    new{Num=3, text="GHI"} }

Is it possible to do it with some LINQ-based construction?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

划一舟意中人 2024-11-08 09:55:04
var result = list.Select(
    (element, index) => new MyType { Num = index + 1, Text = element.Text }
);
var result = list.Select(
    (element, index) => new MyType { Num = index + 1, Text = element.Text }
);
万人眼中万个我 2024-11-08 09:55:04
var newList = list.Zip(Enumerable.Range(1, list.Length),
    (item, i) => new { Num = i, item.text}).ToList();
var newList = list.Zip(Enumerable.Range(1, list.Length),
    (item, i) => new { Num = i, item.text}).ToList();
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文