Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/csharp-4.0/2.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#LINQ-与浮点列表进行比较_C#_Linq - Fatal编程技术网

C#LINQ-与浮点列表进行比较

C#LINQ-与浮点列表进行比较,c#,linq,C#,Linq,我有两个浮动列表,它们的大小相同,例如: List<float> list1 = new List<float>{ 2.1, 1.3, 2.2, 6.9 } List<float> list2 = new List<float>{ 2.5, 3.3, 4.5, 7.8 } List list1=新列表{2.1,1.3,2.2,6.9} list2=新列表{2.5,3.3,4.5,7.8} 使用LINQ,我想检查列表1中的所有项目是否小于或等于列

我有两个浮动列表,它们的大小相同,例如:

List<float> list1 = new List<float>{ 2.1, 1.3, 2.2, 6.9 }
List<float> list2 = new List<float>{ 2.5, 3.3, 4.5, 7.8 }
List list1=新列表{2.1,1.3,2.2,6.9}
list2=新列表{2.5,3.3,4.5,7.8}
使用LINQ,我想检查列表1中的所有项目是否小于或等于列表2中的项目,例如:


2.1如果你真的想比较这些成对的数据,听起来你想要
Zip
。(不能说
list1
中的所有项目都比
list2
中的所有项目小,例如6.9大于2.5。)

使用:

bool smallerOrEqualPairwise=list1.Zip(list2,(x,y)=>x);
或:

boolsmalerorequalpairwise=list1.Zip(list2,(x,y)=>new{x,y})
.All(pair=>pair.x
list1.Zip(list2,(x,y)=>new{x=x,y=y})。

All(item=>(item.X
bool result=Enumerable.Range(0,list1.Count)。All(i=>list1[i]如果列表长度不同,您希望发生什么情况?是的,我希望比较相同索引上的值:list1[0]与list2[0],list1[1]与list2[1],..而且两个列表总是有相同的大小,在我的例子中,列表不可能有不同的大小。您的集合初始值设定项,如
new list{2.1,1.3,2.2,6.9}
将不起作用,因为您不能将
double
s添加到
float
s的列表中。是的,您是对的,但您可以这样做:list list list=new list(new float[]{1.2f,3.2f,4.5f});是的,我想将它们两两比较,如上面的注释中所述,例如,list1[0]@user1624552:对,已修复运算符。如果使用
.Contains(false)
而不是
.All(x=>x)
,则会少一个lambda。
bool smallerOrEqualPairwise = list1.Zip(list2, (x, y) => x <= y)
                                   .All(x => x);
bool smallerOrEqualPairwise = list1.Zip(list2, (x, y) => new { x, y })
                                   .All(pair => pair.x <= pair.y);
bool smallerOrEqualPairwise = !list1.Zip(list2, (x, y) => x <= y)
                                    .Contains(false);
list1.Zip(list2, (x, y) => new { X = x, Y = y }).
      All(item => (item.X <= item.Y))
bool result = Enumerable.Range(0, list1.Count).All(i => list1[i] <= list2[i]);