2016-02-24 45 views
3

如何获得数组项的列表C#里面如何获得阵列项目列表<object>内C#

IEnumerable<object> enumerable = c1._getbrandrequest(object[]); 

List<object> brand = enumerable.Cast<object>().ToList(); 

List<Brand> brands = new List<Brand>(); 

for (int i = 0; i <= enumerable.Count(); i++) 
{ 

    var brnd = enumerable.ElementAt(i); 

    // brnd (intellisense only produce) 
    // brnd. { Equals, GetHashCode, GetType, ToString } 

} 

Image of ArrayItems from Web Services

在此先感谢!

+0

这是一个'对象'的列表,所以你必须将它转换为正确的类型,我猜是'object []'。 – cubrr

+0

您应该将通用对象转换为智能感知工作的实际类型。一种选择是你可以调试并检查它在运行时的类型。 –

+0

以我对象阵列 {[0] - {REQID = “1”,SID = “2”}} {[1] - {REQID = “1”,SID = “2”}} 这是屏幕截图 http://s11.postimg.org/tffcvvtzn/help2.jpg –

回答

1

如果enumerable包含Brand对象,那么你需要的是投通过enumerable.ElementAt(i)返回的元素:

var brnd = enumerable.ElementAt(i) as Brand; 
+0

Hello Aruto,brnd return Null。 –

1

我觉得你的代码可以通过这种方式有点清洁:

IEnumerable<object> enumerable = c1._getbrandrequest(object[]); 
List<Brand> brands = enumerable.OfType<Brand>().ToList(); 

foreach (Brand brnd in brands) 
{ 
    // Do things with brnd. 
} 

的OfType只返回具有运行时间类型Brand的对象,并且结果是一个IEnumerable,ToList()使它们成为一个新的列表。

+0

你好Evert,品牌返回0. –

+0

这是截图http://s11.postimg.org/tffcvvtzn/help2.jpg –

+0

啊,这个enumerable是一堆Request对象。我没有足够的信息来帮助你进一步,例如如何根据请求获得品牌,我假设您必须以某种方式执行请求? – Evert

0
 var enumerable = c1._getbrandrequest(Object[]); 

     List<Brand> brands = new List<Brand>(); 

     foreach (var brnd in enumerable) 
     { 
      Brand model = new Brand(); 

      model.sid = brnd.sid; 

      brands.Add(model); 

     }