2017-08-16 87 views
0

我有问题从返回的IList中提取值并在windows.forms中填充组合框。组合框中的所有项目列为。转换/处理返回的IList对象

我已经做了一些测试;

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

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

+0

您的积极依赖注入正确地检索并调用您的存储过程?如果你这样做:'var content = collection.Where(projection => projection!= null);'。它实际上是否显示返回的内容?此外,你可以简单地做到:'var content = collection.Select(projection => projection).ToList())',尽管我不确定这是多么有用。 – Greg

+0

你想提取什么有用的东西?你的期望是什么?你究竟得到了什么?任何错误?什么错误?这段代码的目的是什么? –

+0

数据不足以回答 –

回答

1

谢谢大家给予的任何响声。我的错误是我认为 返回的值是在一个对象列表中。但结果是IEnumerable的 ,所以我没有检查正确的向量。

我添加了一个方法来提取值并以期望的格式返回它,在这种情况下字符串。

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; 
    } 
相关问题