C# 比较两种不同类型的列表

C# 比较两种不同类型的列表,c#,list,object,compare,C#,List,Object,Compare,我有对象列表和字符串列表 List<String> states = new List<String>(); states.add("wisconsin"); states.add("Florida"); states.add("new york"); List<Foo> foo = new List<Foo>(); foo.add(new Foo(2000, name1, "wisconsin")); foo.add(new Foo(1000,

我有对象列表和字符串列表

List<String> states = new List<String>();
states.add("wisconsin");
states.add("Florida");
states.add("new york");

List<Foo> foo = new List<Foo>();
foo.add(new Foo(2000, name1, "wisconsin"));
foo.add(new Foo(1000, name2, "california"));
foo.add(new Foo(300, name3, "Florida"));
List states=新列表();
添加(“威斯康星州”);
添加(“佛罗里达”);
添加(“纽约”);
List foo=新列表();
foo.add(新foo(2000年,名称1,“威斯康星州”);
foo.add(新foo(1000,名称2,“加利福尼亚”);
foo.add(新foo(300,名称3,“佛罗里达”);
对象有三个属性: int age、字符串名称和字符串状态

我已将这些对象添加到列表中。第二个列表由一串“状态”组成

如何比较这两个列表?最好的方法是什么? 我想知道其中一个对象是否具有相同的“状态”,其他列表由哪个组成。
请引导我。

听起来你想要的是:

List<Person> people = ...;
List<string> states = ...;

var peopleWithKnownStates = people.Where(p => states.Contains(p.State));
这两种方法都使用LINQ——如果您以前没有遇到过它,那么一定要研究一下。它非常有用


您可能需要将
状态
更改为
哈希集
,这样
包含的操作会更快。

听起来您想要的是:

List<Person> people = ...;
List<string> states = ...;

var peopleWithKnownStates = people.Where(p => states.Contains(p.State));
这两种方法都使用LINQ——如果您以前没有遇到过它,那么一定要研究一下。它非常有用


您可能希望将
状态
更改为
哈希集
,以便
包含
操作更快。

欢迎使用堆栈溢出!你应该在你的问题中增加两件事:第一,你所说的“比较”是什么意思?因为您有不同类型的对象,所以比较显然不是一一对应的。其次,您应该发布一些代码,展示您自己解决此问题的尝试。祝你好运你想做什么样的比较?您想从列表中删除内容,还是想知道是否满足某个条件?欢迎使用堆栈溢出!你应该在你的问题中增加两件事:第一,你所说的“比较”是什么意思?因为您有不同类型的对象,所以比较显然不是一一对应的。其次,您应该发布一些代码,展示您自己解决此问题的尝试。祝你好运你想做什么样的比较?您想从列表中删除内容,还是想知道是否满足某个条件?