首页 > 解决方案 > 如何转换列表中的var?

问题描述

我需要var在 type中转换 a List<myStruct>。我不得不用来var订购一个列表,myStruct我得到了orderedList2,但现在我需要迭代这个列表,我不知道该怎么做。

public struct myStruct
{

    public String delivery;
    public String articleCode;
    public String dex;
    public String phase;
    public String quantity;

};

List<myStruct> myList;

var orderedList2 = myList.OrderByDescending(x =>
    {
        DateTime dt;
        DateTime.TryParse(x.delivery, out dt);
        return x;
    });

// now I have to fill the ListView again
foreach(myStruct str in orderedList2)
{
    string[] s = new string[5];
    s[0] = str.delivery;
    s[1] = str.articleCode;
    s[2] = str.dex;
    s[3] = str.phase;
    s[4] = str.quantity;

    ListViewItem itl = new ListViewItem(s);
    ////String s = r["DEXART"].ToString();
    ////MessageBox.Show(s);
    listView1.Items.Add(itl);
}

当代码命中foreach语句时,我得到一个异常。

标签: c#structvar

解决方案


在您的结构上实现 IComparable 或者您的订单 lambda 有错误:

 var orderedList2 = myList.OrderByDescending(x =>
    {
        DateTime dt;
       if( DateTime.TryParse(x.delivery, out dt))
           return dt;
        return DateTime.MinValue;
    });

您可以使用.ToList()cal 来获取List<myStruct> orderedList2.


有用:

在此处输入图像描述


推荐阅读