相关疑难解决方法(0)

将对象转换为通用列表

我有3个generict类型列表.

List<Contact> = new List<Contact>();
List<Address> = new List<Address>();
List<Document> = new List<Document>();
Run Code Online (Sandbox Code Playgroud)

并将其保存在具有类型对象的变量上.现在我做了Cast back to List来执行foreach,有些像这样:

List<Contact> = (List<Contact>)obj;
Run Code Online (Sandbox Code Playgroud)

但obj内容每次都在变化,我有一些这样的:

List<???> = (List<???>)obj;
Run Code Online (Sandbox Code Playgroud)

我有另一个变量保持当前obj类型:

Type t = typeof(obj);
Run Code Online (Sandbox Code Playgroud)

我可以做那样的事吗??:

List<t> = (List<t>)obj;
Run Code Online (Sandbox Code Playgroud)

Obs:我没有列表中的当前类型,但我需要施放,而我现在不再使用另一种形式:

List<Contact> = new List<Contact>();
Run Code Online (Sandbox Code Playgroud)

c# generics list

13
推荐指数
2
解决办法
7万
查看次数

检查对象是否为System.Generic.List <T>,对于任何T

示例代码:

    using System.Collections.Generic;
    ...

        // could return anything. 
        private object GetObject(int code)
        {
            object obj = null;

            if (code == 10)
            {
                var list1  = new List<Tuple<int, string>>();
                list1.Add(new Tuple<int, string>(2, "blah"));
                obj = list1;                
            }
            else if (code == 20)
            {
                obj = "hello";
            }
            else if (code == 30)
            {
                var list2 = new List<string>();
                list2.Add("o");
                obj = list2; 
            }
            // else etc, etc. 

            return obj; 
    }

    private bool DoAction(int code)
    {
        object obj = GetObject(code);

        bool isListT …
Run Code Online (Sandbox Code Playgroud)

c# generics .net-4.5

0
推荐指数
1
解决办法
3082
查看次数

标签 统计

c# ×2

generics ×2

.net-4.5 ×1

list ×1