C # jak stworzyć listę klas


Jestem nowy w C #, ale nie programowaniu. Po pierwsze, bardzo dziękuję za pomoc!
Potrzebuję klasy lub struktury, w zależności od potrzeb, która ma 3 zmienne. Ciąg i dwie daty.
Chcę utworzyć pętlę przechowującą nowe klasy na liście.
Raczej:
dla każdego elementu w dataViewer

utwórz nową klasę

przypisać zmienne

zapisz klasę na liście

Dalej
Dziękuję bardzo za Twoją pomoc
Zaproszony:
Anonimowy użytkownik

Anonimowy użytkownik

Potwierdzenie od:

Możesz to łatwo zrobić za pomocą LINQ:
var list = dataViewer
.Select(item => new YourClass
{
StringProperty = ...,
DateTimeProperty1 = ...,
DateTimeProperty2 = ...
})
.ToList();

Pozwala wyrazić swoje zamiary (utworzyć listę obiektów
YourClass
z każdego elementu
item
w
dataViewer
) bez podkreślania mechaniki stojącej za tym (pętle i itp.)

Edit:

Jeśli nie chcesz listy, tylko sekwencji, wygląda to również dobrze przy użyciu składni zapytania (to samo znaczenie):
var yourClasses =
from item in dataViewer
select new YourClass
{
StringProperty = ...,
DateTimeProperty1 = ...,
DateTimeProperty2 = ...
};
Anonimowy użytkownik

Anonimowy użytkownik

Potwierdzenie od:

Może coś takiego
var list = new List<YourClass>();foreach(var item in dataViewer) {
var cls = new YourClass();
// Assign variables here
// cls.Test = item.Test; list.Add(cls);
}
Anonimowy użytkownik

Anonimowy użytkownik

Potwierdzenie od:

Spróbuj:
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;
}
Anonimowy użytkownik

Anonimowy użytkownik

Potwierdzenie od:

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"]
});
Anonimowy użytkownik

Anonimowy użytkownik

Potwierdzenie od:

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

Aby odpowiedzieć na pytania, Zaloguj się lub Zarejestruj się