Ich versuche Linq zu verwenden, um jede Zeile aus einer DB-Abfrage in ein Wörterbuch zu projizieren, das einen benutzerdefinierten Typ als Wert hat. Ich bin mir nicht sicher über die LINQ-Syntax, um dies zu tun?Wie projiziere ich ein Wörterbuch mit einem benutzerdefinierten Typ mit Linq to SQL?
Dies ist mein derzeitiger Versuch (der nicht kompiliert, aber zeigen sollte, was ich versuche). Ich habe Probleme mit dem 'Select New ...' Teil.
public class MyClass
{
public Dictionary<int, CustomType> dict;
}
public class MyType{
string Name;
decimal Value;
}
var result = (from t in table
select new {
t.Id,
new MyType(t.Name,t.Value)
}).AsEnumerable().ToDictionary();
ANTWORT:
Dank Jason. Ich habe nur Eigenschaften und automatische Initialisierer anstelle eines Konstruktors verwendet. Der Arbeits Code ähnelt diese (alle Verbesserungen sind uns immer willkommen):
public class MyType {
public string Name {get;set;}
public decimal Value { get; set;}
}
Dictionary<int, CustomType> dict;
dict = (from t in table
select new {
id = av.Account.Id,
mt = new MyType { Name = t.Name, Value = t.Value }
}).ToDictionary(item => item.id, item => item.mt);