Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/283.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#_Arrays - Fatal编程技术网

C# 基于数组内容的返回值

C# 基于数组内容的返回值,c#,arrays,C#,Arrays,从已开始但未结束的数组返回ID的最佳方法是什么。我一直在尝试循环查找匹配的ID,然后检查状态是否为“开始”或“结束”,但我一直与我选择用于排序的ID和状态匹配。(即,我选择数组[0,0]并查找ID 5847,它将在自身上获得匹配) 将2D投影到一个对象中,因为您似乎拥有基于行的对象。 然后在ID上分组,取结束=1/开始=0的最大值 var result = Enumerable .Range(0, array.GetLength(0)) .Select(row =>

从已开始但未结束的数组返回ID的最佳方法是什么。我一直在尝试循环查找匹配的ID,然后检查状态是否为“开始”或“结束”,但我一直与我选择用于排序的ID和状态匹配。(即,我选择数组[0,0]并查找ID 5847,它将在自身上获得匹配)


将2D投影到一个对象中,因为您似乎拥有基于行的对象。
然后在ID上分组,取结束=1/开始=0的最大值

var result =
   Enumerable
    .Range(0, array.GetLength(0))
    .Select(row => new Foo { id = int.Parse(array[row, 0]), ended = (array[row, 1] == "ended") })
    .GroupBy(g=> g.id)
    .Select( g=> new { Id=g.Key, MaxEnded= g.Max(r=> r.ended)})
    .Where(x=> !x.MaxEnded);

能否确认已在此对象的行中定义了对象。[X,1]是[X,0]id的状态?它就是这样工作的。[x,0]是ID,[x,1]是该ID的状态。我添加了一个假设的答案。举个例子。它应该可以工作。这看起来不错,但我在result.Dump()上遇到了一个错误。因为它没有引用在IEnumerable内部转储。是的,因为dump是一个函数,在dotfidle上使用它来转储变量以显示其内容。如果要显示内容,请使用良好的旧
foreach(foos中的var项){Console.WriteLine(item.property);}
Ohh我明白了。我不使用Dotfidle,我以为我错过了什么。谢谢。最后一个问题,如果结果都不适用,我应该检查结果是否返回null吗?
var result =
   Enumerable
    .Range(0, array.GetLength(0))
    .Select(row => new Foo { id = int.Parse(array[row, 0]), ended = (array[row, 1] == "ended") })
    .GroupBy(g=> g.id)
    .Select( g=> new { Id=g.Key, MaxEnded= g.Max(r=> r.ended)})
    .Where(x=> !x.MaxEnded);