如何从列表<tuple <datetime,string =“”>&gt;中删除项目

时间:2016-12-20 13:56:28

标签: c# linq list tuples

我正在尝试从包含元组的列表中删除项目,其中第一个元组项目的日期在今天的日期之前。

这是我的代码:

 List<Tuple<DateTime, string>> Events = new List<Tuple<DateTime, string>>();

优选使用linq。

我填写这样的列表:

 Events.Add(new Tuple<DateTime, string>(date, stringtext));

因此,应删除列表中日期为2016年12月20日之前的任何项目。第二个元组(字符串)并不重要。

3 个答案:

答案 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();