gpt4 book ai didi

c# - 排序列表>

转载 作者:太空宇宙 更新时间:2023-11-03 21:14:34 26 4
gpt4 key购买 nike

我有一个二维的“NameValuePair”列表,到目前为止我一直在尝试订购但没有成功。

NameValuePair 定义为:

public class NameValuePair
{
[DataMember]
public string Name { get; set; }
[DataMember]
public string Value { get; set; }
}

列表定义为:

List<List<NameValuePair>> outerList = new List<List<NameValuePair>>();

外部列表中的每个列表在不同的索引处可能有不同数量的项目,但每个列表肯定都有一个“日期”项目。

例如

List<List<NameValuePair>> outerList = new List<List<NameValuePair>>();
List<NameValuePair> innerList = new List<NameValuePair>();
List<NameValuePair> innerList2 = new List<NameValuePair>();


innerList.Add(new NameValuePair { Name = "List1Item1", Value = "someValue" });
innerList.Add(new NameValuePair { Name = "List1Item2", Value = "otherValue" });
innerList.Add(new NameValuePair { Name = "List1ItemN", Value = "anotherValue" });
innerList.Add(new NameValuePair { Name = "Date", Value = "aDateInStringFormat" });
innerList2.Add(new NameValuePair { Name = "List2Item1", Value = "myValue" });
innerList2.Add(new NameValuePair { Name = "Date", Value = "anotherDateInStringFormat" });
innerList2.Add(new NameValuePair { Name = "List2ItemM", Value = "bestValue" });

outerList.Add(innerList);
outerList.Add(innerList2);

我尝试使用 outerList.Sort();outerList.OrderByDescending(x => x.Where(y => y.Name == "Date")) 进行排序。 ToList(); 到目前为止运气不好。

我还尝试通过重载 CompareTo()IComparable 实现到我的 NameValuePair 类型,但也无法使其正常工作。

我们非常欢迎任何建议。

最佳答案

假设每个内部列表只有一个名称为 Date 和格式正确的日期 Value 的项目:

var sorted = outerList.OrderBy(x => DateTime.Parse(x.Single(y => y.Name == "Date").Value))
.ToList();

Linq 查询采用 NameValuePairName “Date”,将 Value 转换为 DateTime 对象并按此值对外部列表进行排序。

无论如何,您应该考虑创建一个具有 DateTime 属性的类。

关于c# - 排序列表<List<MyType>>,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35287876/

26 4 0