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

2024-02-09

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

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"));

一个对象具有三个属性: int 年龄、字符串名称和字符串状态。

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

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


听起来你想要类似的东西:

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

var peopleWithKnownStates = people.Where(p => states.Contains(p.State));

或者只是为了寻找是否any的人知道以下状态:

var anyPersonHasKnownState = people.Any(p => states.Contains(p.State));

它们都使用 LINQ - 如果您以前没有遇到过它,那么您一定应该研究一下。它非常有用。

您可能想改变您的states to a HashSet<string>所以这样Contains不过操作速度比较快。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

C#,比较两种不同类型的列表 的相关文章

随机推荐