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

How to subtract a property value from a list on a condition

在我的 C# 应用程序中,我需要从一个巨大的列表中减去一个 属性 值(HoList?现在我这样做了,不确定我这样做对吗?

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

在你的问题中,你选择了 HoList,这是一种带有 属性 Count 的类型。我可以通过查看 Select 语句看到这一点。

当您调用 Select 时,您正在选择您想要 return 的内容,而在您的示例中,您正在 returning Count - value1。这很可能是 int 结果。 Select 只是 return 一个 IEnumerable<int>,然后 ToList()IEnumerable<int> 变成了一个 List<int>。您也没有将该列表分配给任何东西。

如果你想改变原来的列表,你可以这样做:

HoList.ForEach(r => r.Count -= value1);

如果它是一个大列表,您也可以利用并行处理这样的事情:

HoList.AsParallel().ForAll(r => r.Count -= value1);

使用您现有的代码进行更正

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

或者如果您需要保留原件

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

重点是Select不修改列表,它创建一个新列表