我有两个变量。第一个变量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。
答案 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