Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/ant/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#_.net_Linq - Fatal编程技术网

C# 使用Linq创建按属性分组的子列表

C# 使用Linq创建按属性分组的子列表,c#,.net,linq,C#,.net,Linq,我有一个调查收集,这是一个自定义类。调查包含一个名为UWI的属性。我想为每个唯一的UWI创建多个列表 一个棘手的部分是,UWI是一个位置。它可以写成00/01-08-023-23W4/0字符串的最后一个字符(本例中为0)告诉您它发生在地下的事件,第一部分是地表位置。我想根据表面位置将所有UWI分组,不考虑深度 例如: 00/01-08-023-23W4/0 及 00/01-08-023-23W4/3 是相同的曲面位置,但具有不同的事件,因此应将这些事件分组 在尝试解决问题时,我尝试: var

我有一个调查收集,这是一个自定义类。调查包含一个名为
UWI
的属性。我想为每个唯一的
UWI
创建多个列表

一个棘手的部分是,UWI是一个位置。它可以写成
00/01-08-023-23W4/0
字符串的最后一个字符(本例中为0)告诉您它发生在地下的事件,第一部分是地表位置。我想根据表面位置将所有UWI分组,不考虑深度

例如:

00/01-08-023-23W4/0

00/01-08-023-23W4/3

是相同的曲面位置,但具有不同的事件,因此应将这些事件分组

在尝试解决问题时,我尝试:

 var test =  directionalSurveys.Select(a => a.UWI.Remove(a.UWI.Length - 1, 1));
这只是返回了一个UWI的列表

如果主列表的集合中有5个对象:

00/01-08-023-23W4/0

00/01-08-023-23W4/1

00/01-08-023-23W4/2

00/01-06-028-19W4/0

00/01-04-018-15W4/0


最终结果将是3个新列表。前三个作为列表,第四个作为列表,第五个作为列表。

使用
GroupBy
对项目进行分组:

var query = directionalSurveys.GroupBy(a => a.UWI.Remove(a.UWI.Length - 1, 1));

使用
GroupBy
对项目进行分组:

var query = directionalSurveys.GroupBy(a => a.UWI.Remove(a.UWI.Length - 1, 1));

可能有10个或更多的地下事件吗?我从来没有见过它,但它是一个可能性,那么你应该考虑一个不同的机制来提取结束-如果失败的话,它会失败。好的捕捉,我错过了。谢谢。能有10个或更多的地下事件吗?我从来没有见过它,但它是可能的,那么你应该考虑一个不同的机制来提取最终结果。如果发生这种情况,它会失败。好的捕捉,我错过了。非常感谢。