簡體   English   中英

在對象列表中找到第一個匹配的字符串值

[英]Find the first matching string value in a list of objects

我有一個strings列表,例如: myList ,然后還有一個對象列表,例如myDbObjectsList該對象看起來像這樣:

public class MyDbObjects
{  
    public string FirstName { get;set;}
    public string LastName {get;set;}
    public int ID {get;set;}
}

我想知道是否有任何2名成員myList (上述第一個)其中之一的值等於名字和另外一個的值等於姓氏從我同一個對象上 myDbObjectsList

我解決了它的明顯的方式for-each荷蘭國際集團通過他們和檢查,看看是不是等於這一個,是不是等於一個等,但我認為應該是人比我聰明能想到一個更有效的方法的?

為了加快搜索速度,您可以將myList所有字符串放入哈希集中:

var hashSet = new HashSet<string>(myList);

現在檢查myDbObjects是否存在任何對象,您可以使用Any

var isAny = myDbObjects.Any(x => hashSet.Contains(x.FirstName) && hashSet.Contains(x.LastName));

如果要獲取這些對象,請使用Where

var objectsThatMatch = myDbObjects
  .Where(x => hashSet.Contains(x.FirstName) && hashSet.Contains(x.LastName));

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM