winforms 将对象列表传递给单一方法

z9ju0rcb  于 2023-10-23  发布在  其他
关注(0)|答案(2)|浏览(108)

你可能知道List<String>不匹配List<Object>
我如何传递像这样的对象:

List<String>
List<Int>
List<className>

一个单一的方法?
例如,假设我们有一个这样的方法:

public void _AddListOfObject(string TitleOfDaataGridView, List<Object> Values)
{
    _Temp.Columns[0].Name = TitleOfDaataGridView;               
    foreach (object  i in Values)
    {
        //...
    }
}

现在我不能把List<string>对象传递给这个方法。
我怎么能这么做呢?

jslywgbw

jslywgbw1#

你在找 generic 吗?让我们使用List<T>,其中T是一个 * 泛型类型 *:

// Method has T generic type
public void _AddListOfObject<T>(string TitleOfDaataGridView, List<T> Values)
{
    _Temp.Columns[0].Name = TitleOfDaataGridView;  
             
    // Note, that i is of generic type T now
    foreach (T i in Values)
    {
    ...
    }
}

从现在开始_AddListOfObject接受任何类型的列表:

List<int> list1 = new List<int>() { 1, 2, 3 };
List<string> list2 = new List<string>() { "a", "b", "c" };

_AddListOfObject("TitleInt", list1);
_AddListOfObject("TitleString", list2);
nnt7mjpx

nnt7mjpx2#

你可以将你的字符串列表转换成对象列表,并传递它:

using System;
using System.Collections.Generic;
                    
public class Program
{
    public static void _AddListOfObject(List<Object> Values)
    {
    }
    public static void Main()
    {
        List<string> strings = new List<string> {
            "a",
            "b",
            "c"
        };
        List<Object> objects = new List<Object>();
        objects.AddRange(strings);
        _AddListOfObject(objects);
    }
}

相关问题