nehme ich eine Erweiterungsmethode schreiben möchten einige Daten aus einem T[,]
in eine CSV-Dump:Lambda in C# Erweiterungsmethode
public static void WriteCSVData<T>(this T[,] data, StreamWriter sw)
{
for (int row = 0; row < data.GetLength(0); row++)
for (int col = 0; col < data.GetLength(1); col++)
{
string s = data[row, col].ToString();
if (s.Contains(","))
sw.Write("\"" + s + "\"");
else
sw.Write(s);
if (col < data.GetLength(1) - 1)
sw.Write(",");
else
sw.WriteLine();
}
}
die ich mit
using (StreamWriter sw = new StreamWriter("data.csv"))
myData.WriteCSVData(sw);
annehmen nennen könnte, aber myData
ist a Complex[,]
und ich möchte die Größe der komplexen Zahl, nicht den vollen Wert schreiben. Es wäre praktisch, wenn ich schreiben könnte:
using (StreamWriter sw = new StreamWriter("data.csv"))
myData.WriteCSVData(sw, d => d.Magnitude);
aber ich bin nicht sicher, wie das in der Verlängerung Methode zu implementieren oder ob es überhaupt möglich.
Vergessen Sie nicht, in Ihren Ausgabefeldern irgendwelche Anführungszeichen oder Zeilenumbrüche anzugeben! – Gabe