int loopIndex = 0;
foreach (var item in dataList)
{
item.ChannelId = loopIndex;
loopIndex++;
}
我正在一行中寻找上述代码的替代形式。类似dataList.ForEach(x=>x.ChannelId=...)
建议。
答案 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();