如何根据条件从列表中减去 属性 值
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不修改列表,它创建一个新列表
在我的 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不修改列表,它创建一个新列表