int loopIndex = 0;
foreach (var item in dataList)
{
item.ChannelId = loopIndex;
loopIndex++;
}
我在一行中寻找上述代码的替代品。类似于-dataList.ForEach(x=>x.ChannelId=...)
请提出建议。
如果你NuGet-Microsoft的"System.Interactive"扩展,那么你可以这样做:
dataList.ForEach((item, index) => item.ChannelId = index);
这是一行中的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;
尝试这个
dataList.ForEach(x => x.ChannelId = loopIndex++);
尝试这个
dataList= dataList.Select(x=>x.ChannelId=loopIndex++).ToList();