linq没有返回任何数据

时间:2016-04-10 03:07:43

标签: c# linq

我有两个变量。第一个变量docList,类型为www.abc.com.docListResponse。它由一系列值组成,其中包含docID [0] =" 12345",docID [1] =" 34567" docID [2] =" 32498"

第二个变量是自定义类型Documents [] docsColl,其值为docRefID [0] =" 12345",docRefID [1] =" 34567",DocRefID [2] =& #34; 67890"

Ling操作员

   var docs =  docsColl.ToList().Where(i => i.docRefID== docList .FirstOrDefault().docID.ToString()).ToArray();

我希望它返回两条记录,但返回0。

1 个答案:

答案 0 :(得分:1)

如果您需要使用其他现有集合撰写查询,通常可以使用Any()方法来完成此操作,这将返回与您的特定约束匹配的任何记录。

hot-loader

有一点需要注意的是,如果您使用的是复杂类型且初始集合不在内存中(并且类似于数据库),LINQ不知道如何正确处理此问题,因此您通常需要要在var docs = docsColl.Where(d => docList.Any(x => d.docID == x.docRefID)); 声明之前发出ToList()来电:

Where()

或者您需要确保您用于查询的集合(在本例中为var docs = docsColl.ToList() .Where(d => docList.Any(x => d.docID == x.docRefID)); )仅包含字符串等基本类型:

docList