如何从条件列表中减去属性值

时间:2018-11-27 21:42:27

标签: c# list select subtraction

在我的C#应用​​程序中,我需要从一个巨大的列表中减去一个属性值(HoList?现在我执行此操作,不确定是否正确吗?

int value1 =2;
HoList.Select(r => r.Count - value1).ToList();

2 个答案:

答案 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不会修改列表,而是创建一个新列表