我有对象列表和字符串列表。
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(使用前将#替换为@)