转换/处理返回的IList对象

时间:2017-08-16 15:02:00

标签: c# winforms list object

我在从返回的IList中提取值并在windows.forms中填充组合框时遇到问题。组合框中的所有项目都列为System.object

我做了一些测试;

var retList = Services.Get<IWarehouseInfo>().ExecuteSPArray("sp_executesql", dict); <-- method that returns some values.
//Tries to extract value from retlist/which is a IList<object[]> collection.

        var strList = (from o in retList select o.ToString()).ToList();
        var strList2 = retList.OfType<string>().ToList();
        var strList3 = retList.Cast<string>();
        var strList4 = retList.Where(x => x != null).Select(x => x.ToString()).ToList(); //All these seem to result in system object. 

        var bub = strList.ElementAt(2).ToString();

        var bob = strList4.ElementAt(2).ToString();
        var kupa = strList.ToArray();
        var kupo = kupa[2].ToString();

所有这些都无法提取任何有用的东西。

1 个答案:

答案 0 :(得分:1)

  

我感谢所有人发出的哔哔声。我的错误是我想的   返回的值在对象列表中。但结果是   一个IEnumerable,所以我没有检查正确的向量。

我添加了一个提取值并以所需格式返回的方法,在本例中为string。

 private static List<string> ToListString(IEnumerable<object[]> inparam)
    {
        var custNums = new List<string>();

        foreach (var row in inparam)
        {
            if (row[0] != null && row[0] != DBNull.Value)
                custNums.Add(row[0].ToString());
        }

        return custNums;
    }