检查字符串列表是否包含对象属性值,以及是否将其从字符串列表中删除

时间:2014-09-04 21:26:46

标签: c# asp.net linq c#-4.0 linq-to-objects

我有这个字符串列表:

List<string> clubs = dropdownSelectedvalue.Split(',').ToList();

值将为例如:1255,1233,2233。现在我的对象与俱乐部列表中的值具有相同的属性。我想要实现的是从现有的propertyid中清除俱乐部列表,以防id在列表中并且只留下不存在的id。

这是对象:

public class Clubs
{
    public int? ClubId { get; set; }    
    public string ClubName { get; set; }
}

是否有任何linq命令或类似的东西我可以用于此问题?

已添加代码:

List<string> newClubs = clubs.Remove(s => Club.ClubId.ToString().Equals(clubs));

这样的事情但是还没有完成,我已经达到了这一点。

每个请求添加的附加代码:

List<Clubs> Clubs = Clubs.LoadAll();
foreach (Clubs club in Clubs)
{
    var dropdownSelectedvalue = values[sponsor.WebUserId.Value.ToString()];
    List<string> clubs = dropdownSelectedvalue.Split(',').ToList();             
    List<string> newClubs = ?                
}

2 个答案:

答案 0 :(得分:2)

英语:给我所有俱乐部我的俱乐部ID列表不包含俱乐部的ClubId

的LINQ:

var query = clubList.Where(c => !clubs.Contains(c.ClubID));

答案 1 :(得分:1)

最易读的方式是: -

var newClubs = clubs.Except(allClubs).ToList();

你将在你的俱乐部课上实现IEquatable<Club>

请参阅http://msdn.microsoft.com/en-us/library/vstudio/bb300779(v=vs.100).aspx

或者,如果您只想处理字符串,请将您的allClubs列表投影到俱乐部的名称(使用Select),然后在字符串上使用Except