通过使用<T> AddRange 添加对象来访问 List 中的对象



有没有办法访问列表中的对象?比如,在特定对象中获取精确的字段。 例如:

List<Object> allObjectResult = new List<Object>();
allObjectResult.AddRange(method(ObjectOne.ToArray()));
allObjectResult.AddRange(method(ObjectTwo.ToArray()));
allObjectResult.AddRange(method(ObjectThree.ToArray()));

我想在ObjectOne,ObjectTwo和ObjectThree中获取一个特定的字段。我怎么能做到这一点?

更新的问题

在列表中,我们可以按顺序访问元素的位置。我第一次尝试在列表中获取对象中的特定值是有效的。这是我所做的:

创建列表的新实例:

List<Object> objList = new List<Object>();

添加了有关它的数据:

objList.Add(objdata);

在方法中使用它:

Object[] result = binding.method(Object.ToArray());

循环:

for(i = 0; i < result.Length; i++)
{
  Console.WriteLine("objs {0} - {1}", objList[i].Name, result[i].id);
}

但是,我想要的是我有三个对象。我所做的是将它们添加到列表中:

List<Object> allObjectResult = new List<Object>();
allObjectResult.AddRange(binding.method(ObjectOneList.ToArray()));
allObjectResult.AddRange(binding.method(ObjectTwoList.ToArray()));
allObjectResult.AddRange(binding.method(ObjectThreeList.ToArray()));

我想做同样的事情,就像我在对象中获取名称一样(无论如何,它是列表中的对象)。我希望他们使用循环访问。

选择特定类型的对象:

foreach (var obj1 in allObjectResult.OfType<ObjectOne>()) {
  Console.WriteLine(obj1.Whatever);
}

动态检查类型:

foreach (var obj in allObjectResult) {
  if (obj is ObjectOne) {
    var obj1 = (ObjectOne)obj;
    Console.WriteLine(obj1.Whatever);
  } // else ...
}

相关内容

  • 没有找到相关文章

最新更新