C#foreach将list属性设置为使用list在一行中循环索引。

时间:2018-07-23 05:44:05

标签: c# linq

int loopIndex = 0;
foreach (var item in dataList)
{
    item.ChannelId = loopIndex;
    loopIndex++;
}

我正在一行中寻找上述代码的替代形式。类似dataList.ForEach(x=>x.ChannelId=...)

建议。

4 个答案:

答案 0 :(得分:6)

如果您使用NuGet Microsoft的“ System.Interactive”扩展名,则可以执行以下操作:

dataList.ForEach((item, index) => item.ChannelId = index);

答案 1 :(得分:3)

这是一行中的Linq方法,而无需安装另一个库

dataList = dataList.Select((x, i) => { x.ChannelId = i; return x; }).ToList();

代码:https://dotnetfiddle.net/SCEbyV


另一种方式-优雅的for在一行中循环播放

for (int i = 0; i < dataList.Count; i++) dataList[i].ChannelId = i;

答案 2 :(得分:2)

尝试

dataList.ForEach(x => x.ChannelId = loopIndex++);

答案 3 :(得分:0)

尝试

dataList= dataList.Select(x=>x.ChannelId=loopIndex++).ToList();
相关问题