我怎样才能列出一个清单
本文关键字:一个 | 更新日期: 2023-09-27 18:22:24
我试图将一组列表存储在列表中,但由于强制程序员使用<>列表将包含的数据类型以及列表包含的列表我似乎无法将我的列表添加到包含主列表的列表中,而不会收到一个错误,告诉我我没有添加正确类型的列表。
public List<MyObject1> List1{ get; set; }
public List<MyObject2> List2{ get; set; }
List<List<object>> myMasterList; //nested type definitions here
public SetUpLists()
{
List1= new List<MyObject1>();
List2= new List<MyObject2>();
myMasterList= new List<List<object>>(); //nested type definitions here
//ERROR ON NEXT 2 LINES
'System.Collections.Generic.List<System.Collections.Generic.List<object>>.Add(System.Collections.Generic.List<object>)' has some invalid arguments.
myMasterList.Add(List1);
upgradeList.Add(List2);
}
因此,从错误报告来看,它似乎应该起作用。我甚至尝试过让它不是List<List<object>>
,而是MyObject1
和MyObject2
类上的父类:List<List<MyObjectMaster>>
——但没有成功,我得到了同样的错误。
非常感谢您的帮助。
myMasterList被类型化为List<List<object>>
,它只接受List<object>
类型的元素。虽然MyObject1是从对象派生的,但List<MyObject1>
并不等同于List<object>
。
为了解决这个问题,您可以使用myMasterList作为List<object>
,并在每次访问对象时将其强制转换为List<object>
,也可以使用类似这样的Linq查询,在插入各个列表之前将它们强制转换为List<object>
。
myMasterList.Add(List1.Select(item => item as Object).ToList());
List1
的类型为List<MyObject1>
,但您使用的是List<object>
。这些可能看起来相似,但不相同,并且不可转换。
这里的解决方案是列出MyObject1
和MyObject2
的通用基类型或整数。如果没有其他内容,您可以在任何地方使用List<object>
。
你说你试过MyObjectMaster
,但没有显示代码。。。问题可能是CCD_ 19和CCD_。。。也就是说,您应该在任何地方使用完全相同类型的列表。