public static class ListRemove
{
//sortEx 是个传过来的那个属性 source需要比较的值
public static List<T> RemoveList<T>(this List<T> lists, string sortEx, string source)
{
foreach (var item in lists)
{
//如果item[sortEx] == source 请问大家 这一步该怎么写
//if (item.GetType(). == source)
//{
//lists.Remove(item);
//}
}
return lists;
}
}
if(item[sortEx].equal(source)){。。。。。。lists.Remove(。。。)。。。。。。。。。}
173844862.Net高级部落 欢迎你的加入!
不能在foreach中移除项,会直接报错的
经验:用list的iterator,进行操作。list的for循环遍历,增删操作有问题。
先将lists复制到另外一个LIST<T>中,然后循环复制的LIST<T>,若和你相同则移除lists中的item,然后返回lists;
List<T> newList=new List<T>();
foreach (var item in lists)
{
if (item.GetType(). == source)
{
newList.Add(item)l
}
}
return newList;
//sortEx 是个传过来的那个属性 source需要比较的值 public static List<T> RemoveList<T>(this List<T> lists, string sortEx, string source) { foreach (var item in lists) { if (item.GetType().GetProperty(sortEx).GetValue(item, null).ToString() == source) { lists.Remove(item); break; } } return lists; }
反射,学长只能帮你到这里了.
@crud: 不要人云亦云好么 能不能让程序说话