Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/330.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何通过复杂数组查找(查询)以检入IMongoCollection和LINQ?_C#_Linq - Fatal编程技术网

C# 如何通过复杂数组查找(查询)以检入IMongoCollection和LINQ?

C# 如何通过复杂数组查找(查询)以检入IMongoCollection和LINQ?,c#,linq,C#,Linq,我有一段代码,它使用MongoDBnuget包并在C#中查询MongoDB\u persons是IMongoCollection。查询工作并返回结果。但是person.NameDetails.Name数组可以有1-2个数组索引,并且某些数组可以为空。我如何优化查询以检查它是否为空,不将其与关键字的任何数组匹配进行比较,它将返回而不检查其他数组。注意:一个人可能有不同的名字和姓氏,因为它存储在不同的语言中 var documents = _persons.Find(person =>

我有一段代码,它使用
MongoDB
nuget包并在C#中查询MongoDB<代码>\u persons是
IMongoCollection
。查询工作并返回结果。但是
person.NameDetails.Name
数组可以有1-2个数组索引,并且某些数组可以为空。我如何优化查询以检查它是否为空,不将其与关键字的任何数组匹配进行比较,它将返回而不检查其他数组。注意:一个人可能有不同的名字和姓氏,因为它存储在不同的语言中

var documents = _persons.Find(person =>                 
    person.NameDetails.Name[0].NameValue.FirstName == firstName &&
    person.NameDetails.Name[0].NameValue.Surname == surname
).ToList();
var documents = _persons.Find(person =>                 
    person.NameDetails.Name
        .Any(value => value.NameValue.FirstName == firstName && value.Surname == surname)
).ToList();