列表添加带属性的扩展

时间:2011-12-07 08:58:19

标签: c# list

我可以通过展示我希望的例子

来最好地解释这一点

我有一个模特

public class TestModel
{
    public int Test1 { get; set; }
    public string Test2 { get; set; }
}

我列出了一个清单

List<TestModel> testList = new List<TestModel>

现在最初添加项目时我应该使用

testList.Add(new TestModel { Test1 = 1, Test2 = "Test" });

但我希望能做的是

testList.Add(1, "Test")

有没有办法实现这个目标?

3 个答案:

答案 0 :(得分:4)

您可以使用扩展方法来执行此操作,但我个人不会。

public static class TestModelListExtensions
{
    public static void Add(this List<TestModel> list, int test1, string test2)
    {
        list.Add(new TestModel { Test1 = test1, Test2 = test2 });  
    }
}

class Program
{

    static void Main(string[] args)
    {
        List<TestModel> list = new List<TestModel>();
        list.Add(1, "hello");
    }
}

答案 1 :(得分:2)

您可以创建TestModel的构造函数并执行:

testList.Add(new TestModel(1, "Test"));

public class TestModel
{
    public int Test1 { get; set; }
    public string Test2 { get; set; }

    public TestModel(int test1, string test2) 
    {
        Test1 = test1;
        Test2 = test2;
    }
}

答案 2 :(得分:0)

试试这个

public static class Extensions {

    public static List<TestModel> Add(this List<TestModel> list, int test1, string test2)   {
        return list.Add(new TestModel { Test1 = test1, Test2 = test2 });
    }
}