我正在尝试从包含元组的列表中删除项目,其中第一个元组项目的日期在今天的日期之前。
这是我的代码:
List<Tuple<DateTime, string>> Events = new List<Tuple<DateTime, string>>();
优选使用linq。
我填写这样的列表:
Events.Add(new Tuple<DateTime, string>(date, stringtext));
因此,应删除列表中日期为2016年12月20日之前的任何项目。第二个元组(字符串)并不重要。
答案 0 :(得分:4)
List<Tuple<DateTime, string>> events = new List<Tuple<DateTime, string>>();
DateTime date = new DateTime(2016, 12, 20);
events = events.Where(x => x.Item1 > date).ToList();
这将在您的活动中留下日期大于20.12.2016的项目。
答案 1 :(得分:4)
如果你真的需要删除现有列表中的那些,(不是像其他解决方案所说的那样创建新列表),这里是代码:
List<Tuple<DateTime, string>> Events = new List<Tuple<DateTime, string>>();
DateTime date = new DateTime(2016, 12, 20);
Events.RemoveAll(x => x.Item1 < date);
答案 2 :(得分:0)
这使用linq和.ToList()
创建2016年12月20日或之后的列表,然后将新列表分配给events
变量。
events = events.Where(e=>e.Item1 >= new DateTime(2016, 12, 20)).ToList();