【问题标题】:C#, compare two different type of listsC#,比较两种不同类型的列表
【发布时间】:2014-08-04 13:55:12
【问题描述】:

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

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 年龄、字符串名称和字符串状态。

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

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

【问题讨论】:

  • 欢迎来到 Stack Overflow!您应该在您的问题中再添加两件事:首先,“比较”是什么意思?由于您有不同类型的对象,因此比较显然不是苹果对苹果。其次,您应该发布一些代码来展示您自己解决此问题的尝试。祝你好运!
  • 你想做什么样的比较?您想从列表中删除内容,还是想知道某个条件是否满足?

标签: c# list object compare


【解决方案1】:

听起来你想要这样的东西:

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

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

或者只是为了查找是否有任何人知道状态:

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

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

您可能希望将states 更改为HashSet&lt;string&gt;,以便Contains 操作更快。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-04-24
    • 1970-01-01
    • 2014-11-12
    • 2023-01-13
    • 1970-01-01
    • 2020-10-12
    相关资源
    最近更新 更多