C#如何创建类列表

问题描述 投票:2回答:5

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

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

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

就像是:

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

非常感谢你的帮助

c# arrays list class loops
5个回答
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 = ...
    };

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);
}

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;
}

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"]
});

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;
    }
}
© www.soinside.com 2019 - 2024. All rights reserved.