C#如何创建类列表

时间:2011-11-10 21:38:19

标签: c# arrays list class loops

我是c#的新手,但不是编程。首先,非常感谢你的帮助!

我想要一个适当的类或结构,它有3个变量。一个字符串,两个日期时间。

我想创建一个在列表中存储新类的循环。

类似的东西:

对于dataViewer中的每个项目 创造新的班级 分配变量
列表中的商店类 下一个

非常感谢你的帮助

5 个答案:

答案 0 :(得分:8)

您可以使用LINQ轻松完成此操作:

var list = dataViewer
    .Select(item => new YourClass
    {
        StringProperty = ...,
        DateTimeProperty1 = ...,
        DateTimeProperty2 = ...
    })
    .ToList();

它可以让你陈述你的意图(从YourClass中的每个item创建一个dataViewer对象列表,而不强调它背后的机制(循环等)。

编辑:如果您不需要列表,只需要一个序列,使用查询语法(相同含义)也很好看:

var yourClasses =
    from item in dataViewer
    select new YourClass
    {
        StringProperty = ...,
        DateTimeProperty1 = ...,
        DateTimeProperty2 = ...
    };

答案 1 :(得分:6)

也许是这样的

var list = new List<YourClass>();

foreach(var item in dataViewer) {
    var cls = new YourClass();
    // Assign variables here
    // cls.Test = item.Test;

    list.Add(cls);
}

答案 2 :(得分:3)

试试这个:

public class YourClass
{
    public string YourString {get; set;}
    public DateTime YourDate1 {get; set;}
    public DateTime YourDate2 {get; set;}

    public YourClass(string s, DateTime d1, DateTime d2)
    {
        YourString = s;
        YourDate1 = d1;
        YourDate2 = d2;
    }
}

public List<YourClass> Read()
{
    List<YourClass> list = new List<YourClass>();
    foreach(var item in dataViewer)
        list.Add(new YourClass(s,d1,d2)); // Read variables from item...
    return list;
}

答案 3 :(得分:1)

public class Appropriate
{
    public string Value { get; set; }
    public DateTime Start { get; set; }
    public DateTime End { get; set; }
}

IList<Appropriate> list = new List<Appropriate>();

foreach(var item in dataViewer) {
    list.Add(new Appropriate() {
        Value = item["value"],
        Start = item["start"],
        End = item["end"]
    });
}

IList<Appropriate> list = new List<Appropriate>();

dataViewer.ToList().ForEach(i => list.Add(new Appropriate() {
    Value = item["value"],
    Start = item["start"],
    End = item["end"]
});

答案 4 :(得分:1)

public class Foo
{
    public Foo(string name, DateTime dt1, DateTime dt2)
    {
        Name = name;
        DT1 = dt1;
        DT2 = dt2;
    }

    public string Name { get; set; }
    public DateTime DT1 { get; set; }
    public DateTime DT2 { get; set; }
}

public class Example
{
    public List<Foo> example(DataView dataViewer)
    {
        var foos = new List<Foo>();        

        foreach(var data in dataViewer)
        {
            foos.Add(new Foo(data.Name, data.DT1, data.DT2);
        }

        return foos;
    }
}