有没有办法访问列表中的对象?比如,在特定对象中获取精确的字段。 例如:
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 ...
}