Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/linq/3.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/unit-testing/4.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
使用LINQ检查集合中的唯一值?_Linq - Fatal编程技术网

使用LINQ检查集合中的唯一值?

使用LINQ检查集合中的唯一值?,linq,Linq,我有以下类定义: public class PriorityItem { public string uniqueID { get; set; } public List<DelegationTask> DelegationTasks = new List<DelegationTask>(); public List<int> Priorities = new List<int>(); } 公共类优先项 { 公共字符串唯

我有以下类定义:

public class PriorityItem
{
    public string uniqueID { get; set; }
    public List<DelegationTask> DelegationTasks = new List<DelegationTask>();
    public List<int> Priorities = new List<int>(); 
}
公共类优先项
{
公共字符串唯一标识{get;set;}
public List DelegationTasks=new List();
公共列表优先级=新列表();
}
现在让我们假设我从这个类创建一个列表,如下所示:

List<PriorityItem> pItems = new List<PriorityItem>();
List pItems=new List();
现在我想根据uniqueID属性检查列表中是否存在一个项目,这是如何实现的

例如,我将使用PriorityItem集合填充列表,但仅当优先级项不存在时。为了确定它是否存在,我需要使用LINQ检查uniqueID的值


希望这是有意义的

如果找到任何符合特定条件的项,Any linq扩展方法将返回true。您可以按如下方式使用它:

string idToSearchFor = "123"
bool exists = pItems.Any(item => item.uniqueId == idToSearchFor);

只有当您的列表包含一个
PriorityItem
唯一ID为
“123”
“exists”的
项目时,上述代码
才是真的。Exists与SQL术语的匹配程度略高于其他类型。任何和所有自然地结合在一起作为一种自然限定符对

然而,在句子中,“我们有这个独特的id吗?”也许“存在”在可读性和意图方面更合适

class Class1
{
    [Test]
    public void Test()
    {
        // initialise list
        var pItems = new List<PriorityItem>(){new PriorityItem(){uniqueID = "1"}, new PriorityItem(){uniqueID = "2"}, new PriorityItem(){ uniqueID = "123"}};
        var IDtoFind = "123";
        var wasFound = pItems.Exists(o => o.uniqueID == IDtoFind);
    }
}

public class PriorityItem
{
    public string uniqueID { get; set; }
    //public List<DelegationTask> DelegationTasks = new List<DelegationTask>();
    public List<int> Priorities = new List<int>();

}
Class1类
{
[测试]
公开无效测试()
{
//初始化列表
var pItems=new List(){new PriorityItem(){uniqueID=“1”},new PriorityItem(){uniqueID=“2”},new PriorityItem(){uniqueID=“123”};
var IDtoFind=“123”;
var wasFound=pItems.Exists(o=>o.uniqueID==IDtoFind);
}
}
公共类优先项
{
公共字符串唯一标识{get;set;}
//public List DelegationTasks=new List();
公共列表优先级=新列表();
}

谢谢,这正是我想要的!