Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/317.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何从条件列表中减去属性值_C#_List_Select_Subtraction - Fatal编程技术网

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

C# 如何从条件列表中减去属性值,c#,list,select,subtraction,C#,List,Select,Subtraction,在我的C应用程序中,我需要从一个巨大的列表HoList中减去一个属性值?现在我这么做了,不确定我这么做对吗 int value1 =2; HoList.Select(r => r.Count - value1).ToList(); 在你的问题中,你采用的是HoList,它是一种具有属性计数的类型。我可以通过查看Select语句看到这一点 当您调用Select时,您正在选择要返回的内容,在您的示例中,您正在返回Count-value1。这很可能是一个int结果。Select只是返回一个IE

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

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

在你的问题中,你采用的是HoList,它是一种具有属性计数的类型。我可以通过查看Select语句看到这一点

当您调用Select时,您正在选择要返回的内容,在您的示例中,您正在返回Count-value1。这很可能是一个int结果。Select只是返回一个IEnumerable,然后ToList将该IEnumerable转换为列表。您也没有将该列表分配给任何对象

如果要更改原始列表,可以执行以下操作:

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

yes。如果你想说从每个项目的属性计数中减去值,是的,你做得对。是的,但它不起作用?为什么不呢?发生了什么?@MichaelPuckettII解决方案是正确的,如果您想减去该值并用旧值替换它。@AAAA-代码是错误的,它将丢弃结果。Select不会就地修改列表,而是返回一个新的、经过转换的列表。您不能分配HoList=HoList.selector=>r.Count-value1.ToList;因为你想把HoList的类型转换成一个列表。如果HoList是一个列表,那么是的,但我们知道这不是因为他在语句中使用了r.Count。另外,Select不会创建列表,它会在本例中枚举时对枚举进行变异,并与EF不同。。ToList是使用Select语句的结果生成新列表的程序。