Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/list/4.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 - Fatal编程技术网

C# 根据列表的唯一成员查找列表

C# 根据列表的唯一成员查找列表,c#,list,C#,List,我是C#的新手,我有一个问题,在网站上找不到答案。我有几个列表,它们都包含3项 List1 : 1 2 3 List2 : 0 6 1 List3 : 1 2 6 List4 : 6 1 2 List4 : 2 3 6 List5 : 6 2 3 List6 : 3 6 4 List7 : 4 6 5 List8 : 5 6 7 List9 : 8 6 12 List10 : 10 6 13 Lis

我是C#的新手,我有一个问题,在网站上找不到答案。我有几个列表,它们都包含3项

List1  :  1  2 3         
List2  :  0  6 1         
List3  :  1  2 6
List4  :  6  1 2
List4  :  2  3 6
List5  :  6  2 3
List6  :  3  6 4
List7  :  4  6 5
List8  :  5  6 7
List9  :  8  6 12
List10 :  10 6 13
List11 :  4  8  6
List12 :  11 7 13
List13 :  5 10 12
List14 :  10 12 6 
我想选择包含唯一编号的列表。结果应该是这样的。我需要选择列表1、列表7和列表12,因为这些列表中的任何成员都相互对应。我尝试了一些递归循环,但失败了。任何帮助都将受到感谢。谢谢

---------------------------
1 2 3    4 6 5    11 7 13 
---------------------------
List1    List7    List12

好吧,名单1总是会有新的号码。。。我会创建一个已知数字的辅助列表,遍历提供的列表,检查与已知数字的匹配,如果没有匹配,则将其添加并保留列表。。。非常基本的东西。。。我相信林克也有办法做到这一点


不打算发布代码,因为我认为这是一个家庭作业。。。我们在这里不做其他人的家庭作业…

好吧,列表1总是有新的数字。。。我会创建一个已知数字的辅助列表,遍历提供的列表,检查与已知数字的匹配,如果没有匹配,则将其添加并保留列表。。。非常基本的东西。。。我相信林克也有办法做到这一点


不打算发布代码,因为我认为这是一个家庭作业。。。我们在这里不做其他人的家庭作业…

如果你从以下数据开始:

var xss = new[]
{
    new [] { 1, 2, 3 },
    new [] { 0, 6, 1 },
    new [] { 1, 2, 6 },
    new [] { 6, 1, 2 },
    new [] { 2, 3, 6 },
    new [] { 6, 2, 3 },
    new [] { 3, 6, 4 },
    new [] { 4, 6, 5 },
    new [] { 5, 6, 7 },
    new [] { 8, 6, 12 },
    new [] { 10, 6, 13 },
    new [] { 4, 8,  6 },
    new [] { 11, 7, 13 },
    new [] { 5, 10, 12 },
    new [] { 10, 12, 6 },
};
然后这个查询:

var query =
    xss.Skip(1).Aggregate(
        xss.Take(1).ToList(),
        (yss, xs) =>
        {
            if (yss.All(ys => ys.Except(xs).SequenceEqual(ys)))
            {
                yss.Add(xs);
            }
            return yss;
        });
将返回此结果:


如果从这些数据开始:

var xss = new[]
{
    new [] { 1, 2, 3 },
    new [] { 0, 6, 1 },
    new [] { 1, 2, 6 },
    new [] { 6, 1, 2 },
    new [] { 2, 3, 6 },
    new [] { 6, 2, 3 },
    new [] { 3, 6, 4 },
    new [] { 4, 6, 5 },
    new [] { 5, 6, 7 },
    new [] { 8, 6, 12 },
    new [] { 10, 6, 13 },
    new [] { 4, 8,  6 },
    new [] { 11, 7, 13 },
    new [] { 5, 10, 12 },
    new [] { 10, 12, 6 },
};
然后这个查询:

var query =
    xss.Skip(1).Aggregate(
        xss.Take(1).ToList(),
        (yss, xs) =>
        {
            if (yss.All(ys => ys.Except(xs).SequenceEqual(ys)))
            {
                yss.Add(xs);
            }
            return yss;
        });
将返回此结果:


到目前为止,您尝试了什么?我的代码是不相关的,因为它们都不起作用,我想改变我解决这个问题的方法。我只是想知道是否有不同的方法来解决这个问题。谢谢,到目前为止你都试了些什么?我的代码是不相关的,因为它们都不起作用,我想改变我解决这个问题的方法。我只是想知道是否有不同的方法来解决这个问题。谢谢