Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/336.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# 检查列表中是否存在_C#_Asp.net Mvc - Fatal编程技术网

C# 检查列表中是否存在

C# 检查列表中是否存在,c#,asp.net-mvc,C#,Asp.net Mvc,我有这个模型课: public class usersInDashboard { public string Name { get; set; } public string fbID { get; set; } public string firstName { get; set; } public string lastName { get; set; } public int? countOfBid { get; set; } } 这是我的控制器

我有这个模型课:

 public class usersInDashboard
{
    public string Name { get; set; }
    public string fbID { get; set; }
    public string firstName { get; set; }
    public string lastName { get; set; }
    public int? countOfBid { get; set; }
}
这是我的控制器

var参与者=以db.firstWeekBids为单位从q开始
其中q.biddetem==“笔记本电脑”
在db.Users中加入w
关于q.userId等于w.Id
选择新的{q.bidCount};
var模型=新列表();
foreach(参与者的var prt)
{
var userDash=new usersInDashboard();
userDash.fbID=user.id;
if(model.Contains((userDash.fbID))
{
...
}
其他的
{
userDash.fbID=user.id;
userDash.firstName=user.name;
userDash.countOfBid=prt.bidCount;
model.Add(userDash);
}
}
返回局部视图(模型);
我需要检查我的列表中是否存在此fbID。user.id是等于fbID的字符串。 我尝试了
if(model.Contains((userDash.fbID))
但是它抛出了一个异常

错误1与的最佳重载方法匹配 'System.Collections.Generic.List.Contains(bla.Models.usersInDashboard)' 具有一些无效参数C:\Users\John\Documents\visual studio 2013\Projects\blabla\BlaBlaBla\Controllers\AuctionController.cs 67 21

如何执行此操作?

方法如果未创建自定义的相等比较器,则通过使用默认的相等比较器确定序列是否包含指定的元素。如果要知道序列中是否存在具有指定数据的任何元素,请使用重载带谓词,而不是使用
contains()

如果您仍然希望使用
Contains
,那么您可以创建自己的比较器,或者您的模型应该实现。或者尝试@teovankot answer

但是,正如我所说的,如果要确定集合中的任何元素是否匹配某个条件,则必须使用
any()

方法如果未创建自定义相等比较器,则通过使用默认相等比较器确定序列是否包含指定的元素。如果要知道序列中是否存在具有指定数据的任何元素,请使用带谓词的重载,而不是
包含()

如果您仍然希望使用
Contains
,那么您可以创建自己的比较器,或者您的模型应该实现。或者尝试@teovankot answer


但是,正如我所说的,如果要确定集合中的任何元素是否匹配某个条件,则必须使用
any()

@Farhad方法是最好的,但如果仍然要使用
Contains
,则可以这样写:

model.Select(x => x.fbID).Contains(userDash.fbID)

@我认为法哈德方式是最好的,但如果您仍然想使用
Contains
,您可以这样写:

model.Select(x => x.fbID).Contains(userDash.fbID)

这是因为contains需要布尔参数。这是因为contains需要布尔参数。
model.Select(x => x.fbID).Contains(userDash.fbID)