我认为这可行:
private List<DateTime> _dateTimes = new List<DateTime>();
private List<String> _strings = new List<String>();
private List<List<Object>> _listOfLists = new List<List<Object>>();
_listOfLists.Add(_dateTimes);
_listOfLists.Add(_strings);
Run Code Online (Sandbox Code Playgroud)
但是,我收到编译器错误,指出.Add方法有一些无效的参数......有人看到了原因吗?而且,具有通用列表列表的解决方案是什么?
问题是,由于与类型安全相关的原因,您不能将其List<string>视为一个List<object>.如果可以,这将是可能的:
var list = (List<object>)(new List<string>());
list.Add((object)42); // this should never be allowed to compile
Run Code Online (Sandbox Code Playgroud)
你可以做到这一点:
private List<DateTime> _dateTimes = new List<DateTime>();
private List<String> _strings = new List<String>();
private List<IList> _listOfLists = new List<IList>();
_listOfLists.Add(_dateTimes);
_listOfLists.Add(_strings);
Run Code Online (Sandbox Code Playgroud)
这有效,因为List<T>工具IList.当然,您现在已经通过丧失编译时类型安全性来"强制"编译代码.本质上,您接受如果您尝试向其中一个IList实例添加不正确类型的对象,您将获得运行时异常.
| 归档时间: |
|
| 查看次数: |
225 次 |
| 最近记录: |