C#列表与作为元组返回的元组中的某些项相交

C#列表与作为元组返回的元组中的某些项相交,c#,linq,C#,Linq,我有两张单子 1) List<StringA> 2) List<Tuple<StringB, StringC>> 但这并不会将其作为元组返回 如何解决此问题?您可以使用: var query = List2.Where(t => List1.Contains(t.Item2)); 您还可以利用哈希集实现性能目的,如: HashSet<string> hashSet = new HashSet<string>(List1); v

我有两张单子

1) List<StringA>
2) List<Tuple<StringB, StringC>>
但这并不会将其作为元组返回

如何解决此问题?

您可以使用:

var query = List2.Where(t => List1.Contains(t.Item2));
您还可以利用
哈希集
实现性能目的,如:

HashSet<string> hashSet = new HashSet<string>(List1);
var query = List2.Where(t => hashSet.Contains(t.Item2));
HashSet-HashSet=新的HashSet(列表1);
var query=List2.Where(t=>hashSet.Contains(t.Item2));
您可以使用:

var query = List2.Where(t => List1.Contains(t.Item2));
您还可以利用
哈希集
实现性能目的,如:

HashSet<string> hashSet = new HashSet<string>(List1);
var query = List2.Where(t => hashSet.Contains(t.Item2));
HashSet-HashSet=新的HashSet(列表1);
var query=List2.Where(t=>hashSet.Contains(t.Item2));
关于:

List2.Where(c => List1.Contains(c.Item2));
那么:

List2.Where(c => List1.Contains(c.Item2));
给你:

            List<string> one = new List<string>() {"a", "b", "c"};
            List<Tuple<string, string>> two = new List<Tuple<string, string>>();
            two.Add(new Tuple<string, string>("Jack", "x"));
            two.Add(new Tuple<string, string>("Ben", "b"));
            two.Add(new Tuple<string, string>("Kyle", "c"));

            var result = two.Where(x => one.Contains(x.Item2));
List one=newlist(){“a”、“b”、“c”};
列表二=新列表();
添加(新元组(“Jack”,“x”));
添加(新元组(“Ben”,“b”));
添加(新元组(“Kyle”,“c”));
var result=two.Where(x=>one.Contains(x.Item2));
结果=(“本”、“b”)和(“凯尔”、“c”)

给你:

            List<string> one = new List<string>() {"a", "b", "c"};
            List<Tuple<string, string>> two = new List<Tuple<string, string>>();
            two.Add(new Tuple<string, string>("Jack", "x"));
            two.Add(new Tuple<string, string>("Ben", "b"));
            two.Add(new Tuple<string, string>("Kyle", "c"));

            var result = two.Where(x => one.Contains(x.Item2));
List one=newlist(){“a”、“b”、“c”};
列表二=新列表();
添加(新元组(“Jack”,“x”));
添加(新元组(“Ben”,“b”));
添加(新元组(“Kyle”,“c”));
var result=two.Where(x=>one.Contains(x.Item2));

结果=(“Ben”、“b”)和(“Kyle”、“c”)

。NET仅定义
元组
最多八个成员。如果互动中有更多的成员,会发生什么?(你确定这里的“tuple”指的是特定类型还是有序集合的一般CS概念?@Richard他并没有试图以任何方式创建新类型,实际上他只是在过滤他的第二个列表。NET只定义
tuple
最多八个成员。如果互动中有更多的成员,会发生什么?(你确定这里的“tuple”指的是特定类型还是有序集合的一般CS概念?@Richard他并没有试图以任何方式创建新类型,实际上他只是在过滤他的第二个列表