在2个数组中搜索类似的值

时间:2013-11-27 14:48:54

标签: c# linq

我有List<Data> Data

class Data
{
   public int Id {get;set;}
   public string Content {get;set;}
}

从服务器我得到关注对象List<ServerData> ServerData

class ServerData
{
   int sId {get;set;}
   Other stuff...
   string sContent

}

使用LINQ,如何查找具有相同iD==sIdcontent==SContent的所有匹配项?

2 个答案:

答案 0 :(得分:4)

只使用加入?

var matches = from data in listData
              join serverData in listServerData 
                  on new {id = data.Id, content = data.Content} equals 
                     new {id = serverData.sId, content = serverData.sContent}

             select new {
                 <whatever you need>
             }

答案 1 :(得分:0)

您可以使用此代码:

IList<Data> data = //...
IList<ServerData> serverData = //...

IEnumerable<Data> matches = data.Where(d => 
                              serverData.Any(sd => sd.sId == d.Id && 
                                                   sd.sContent == d.Content));