Nicht sicher, warum das nicht funktioniert, es ist von Code angepasst, der funktioniert. Sieht so aus, als ob ich eine explizite Besetzung brauche, aber ich bin mir nicht sicher, warum oder wo ich es ausdrücken soll. Der Fehler ist:Fehler bei CSV zu Dictionary
„Kann nicht implizit Typ 'System.Collections.Generic.IEnumerable {System.Collections.Generic.Dictionary {string, string}}' auf‚System.Collections.Generic.Dictionary {string umwandeln, string} '“
public static Dictionary<string, string> Data_Entry(string dataEntity, string dataCategory, string dataStream = "")
{
var lines = File.ReadAllLines(@"C:\MyFile.csv");
var header = lines.First().Split(',');
return (from line in lines.Skip(1)
let cols = line.Split(',')
where cols[0].ToUpper() == dataEntity & cols[1].ToUpper() == dataCategory & cols[4].ToUpper() == dataStream
select header.Select((h, i) => new { header = h, index = i })
.ToDictionary(o => o.header, o => cols[o.index])
);
}
Es könnte helfen, wenn Sie genau erklären, was dieser Code zu tun versucht. Es gibt ein paar Antworten, die richtig darauf hinweisen, dass Ihr deklarierter Rückgabetyp und Ihre Rückkehranweisung in Konflikt stehen, aber es ist schwer darüber hinauszugehen, ohne Ihr Ziel zu kennen. –
Ich möchte eine einzelne übereinstimmende Zeile aus der strukturierten CSV (nur eine Übereinstimmung ist möglich) über die Where-Klausel sowie die Kopfzeile ziehen, mit den Header-Werten als Schlüssel und den Zeilenwerten als Werte im zurückgegebenen Dictionary. – xnguyeng