我有2个列表,我想删除第一个列表中的项目不存在于第二个列表中的项目。如何比较2个列表值?
public class ResolutionsRow
{
public String Name { get; set; }
public int ID { get; set; }
}
public List<ResolutionsRow> Categories { get; set; }
在以下Category.LoadForProject(project.ID)返回一个IList
DeleteItems(Category.LoadForProject(project.ID), Categories);
private void DeleteItems(dynamic currentItems, dynamic items)
{
if (currentItems != null)
{
foreach (var existingItem in currentItems)
{
if (items.Contains(existingItem.Name))
items.Remove(existingItem.Name);
}
}
}
我有错误消息
的最好的overlo 'System.Collections.Generic.List.Contains(MvcUI.Models.ResolutionsRow)'的匹配方法有一些无效的参数。我的代码出了什么问题,我该如何纠正它?请帮助。
我试图改变代码,但是我有错误消息
错误6参数1:不能从“INT”转换为API.Category” MvcUI \模型\ ProjectModel。 CS 255 44 MvcUI 错误5的最好重载方法匹配 'System.Collections.Generic.ICollection.Contains(API.Category)' 具有一些无效参数MvcUI \模型\ ProjectModel.cs 255 24 MvcUI
var categories = Category.LoadForProject(project.ID);
foreach (var item in Categories)
{
if(categories.Contains(item.ID))
{
}
}
它在达到这部分代码之前失败。 – learning 2010-07-13 11:54:18
我仍然有错误消息 'System.Collections.Generic.List .Contains(MvcUI.Models.ResolutionsRow)'的最佳重载方法匹配有一些无效参数 –
learning
2010-07-13 11:59:08
在最后代码示例在你编辑的答案中,将if(categories.Contains(item.ID))'改为'if(categories.Contains(item))'。其他人发布的基于LINQ的选项可能是更好的选择,顺便说一句。你有使用LINQ的问题吗? – 2010-07-13 13:58:18