在我的C#应用程序中,我需要从一个巨大的列表中减去一个属性值(HoList?现在我执行此操作,不确定是否正确吗?
int value1 =2;
HoList.Select(r => r.Count - value1).ToList();
答案 0 :(得分:3)
在您的问题中,您要使用HoList
,这是一种带有属性Count
的类型。通过查看Select
语句可以看到这一点。
致电Select
时,您要选择要返回的内容,在本例中,您要返回Count - value1
。这很可能是int
的结果。 Select
仅返回一个IEnumerable<int>
,然后ToList()
将那个IEnumerable<int>
变成一个List<int>
。您也不会将该列表分配给任何内容。
如果要更改原始列表,可以执行以下操作:
HoList.ForEach(r => r.Count -= value1);
如果列表很大,您还可以将并行性用于类似这样的事情:
HoList.AsParallel().ForAll(r => r.Count -= value1);
答案 1 :(得分:-1)
使用您现有的代码,更正是
int value1 =2;
HoList = HoList.Select(r => r.Count - value1).ToList();
或者如果您需要保留原始图片
int value1 =2;
var newList = HoList.Select(r => r.Count - value1).ToList();
关键是Select不会修改列表,而是创建一个新列表