C# 根据列表的唯一成员查找列表
我是C#的新手,我有一个问题,在网站上找不到答案。我有几个列表,它们都包含3项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
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;
});
将返回此结果:
到目前为止,您尝试了什么?我的代码是不相关的,因为它们都不起作用,我想改变我解决这个问题的方法。我只是想知道是否有不同的方法来解决这个问题。谢谢,到目前为止你都试了些什么?我的代码是不相关的,因为它们都不起作用,我想改变我解决这个问题的方法。我只是想知道是否有不同的方法来解决这个问题。谢谢