C# List Remove 注意事项
2016-04-08 10:40
507 查看
项目的GitHub地址
输出结果:
结果:
尝试用的删除方式
以下代码应该输出什么呢?using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace TestCollectionDelete { class Program { static void Main(string[] args) { List<UserInfo> listUserInfo = new List<UserInfo>() { new UserInfo { ID = 1, Name = "A" }, new UserInfo { ID = 2, Name = "B" } }; //实例化集合 UserInfo user = new UserInfo(); //new实体 user.ID = 1; user.Name = "A"; listUserInfo.Remove(user); //从集合中删除实体 foreach (UserInfo item in listUserInfo) { Console.WriteLine("ID:" + item.ID + " Name:" + item.Name); } Console.ReadKey(); } } class UserInfo { public int ID { get; set; } public string Name { get; set; } } }
输出结果:
建议方式
是的,并没有从集合中删除A实体。如果要使用集合的Remove删除实体应该采用如下写法:using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace TestCollectionDelete { class Program { static void Main(string[] args) { List<UserInfo> listUserInfo = new List<UserInfo>() { new UserInfo { ID = 1, Name = "A" }, new UserInfo { ID = 2, Name = "B" } }; //实例化集合 listUserInfo.Remove(listUserInfo.Where(p => p.ID == 1).FirstOrDefault()); //从集合中删除实体 foreach (UserInfo item in listUserInfo) { Console.WriteLine("ID:" + item.ID + " Name:" + item.Name); } Console.ReadKey(); } } class UserInfo { public int ID { get; set; } public string Name { get; set; } } }
结果:
结论
即使属性相同的两个实体,在集合中也不会认为是同一个对象,因此从实体集合中,删除元素还是建议使用Linq来删除。相关文章推荐
- 创建jason,jason转换为字符串,字符串转换回jason,c#反序列化jason字符串的几个代码片段
- 第一封博客--记录从技术支持转岗c#开发
- C#基础-获得当前程序的 空间名.类名.方法名
- c# cache 缓存
- 通过IL分析C#中的委托、事件、Func、Action、Predicate之间的区别与联系
- C# 统计代码运行时间
- c# 修饰符总结
- C#获取Session、设置Session类文件
- C# 操作excel
- 迭代器模式的一种应用场景以及C#对于迭代器的内置支持
- 一个查找替换文本的例子(C#实现)
- C# 使用正则表达式去掉字符串中的数字,或者去掉字符串中的非数字
- C# Async与Await的使用
- C#中部分方法返回值类型为什么只能是void?
- C#之基础数据类型和字节数组的转换
- C#基础回顾:正则表达式
- 怎样改动groupbox空间里面的颜色
- c#泛型约束
- 读取XML来更改ipconfig的配置
- C#学习日记