Ich habe Probleme mit der verschachtelten Liste in C#. Ich beziehe eine Liste mit Excel-Daten. Dazu speichere ich alle Daten aus einer Spalte in subdlist2 und füge sie dann in meine Hauptliste termsList ein.
Am Ende, wenn ich den Inhalt meiner Liste anzeigen, sind die Werte nicht die aus mehreren Zeilen, sondern sie werden durch die Werte aus der letzten Spalte ersetzt. Wird der Inhalt der Liste als Referenz und nicht als Wert gespeichert?
Beispiel: Ich habe 5 Zeilen, mit unterschiedlichen Werten, die fünfte Werte ersetzen alle.C# verschachtelte Liste, die falsche Werte speichert
for (i = 0; i < num_speed; i++)
{
lastrow_current = GetLastUsedRow(currentWorksheet, 12 + i * 11);
for (int j = 0; j < lastrow_current; j++)
{
if (currentWorksheet.Cells[j + 6, 12 + i * 11].Value != null)
{
if (j == 0)
{
sublist2.Add(currentWorksheet.Cells[j + 6, 13 + i * 11].Value.ToString());
}
else
{
sublist2.Add(currentWorksheet.Cells[j + 6, 13 + i * 11].Value.ToString());
}
}
}
termsList.Add(sublist2);
}
termsList.Add(sublist2);
foreach (var sublist3 in termsList)
{
foreach (var value in sublist3)
{
Console.Write(value);
Console.Write(' ');
}
Console.WriteLine();
}
Können Sie ein Beispiel für Daten und Ausgabe angeben? Wie auch immer, du erstellst nie eine neue Instanz für 'sublist2', also sind alle Mitglieder in' termsList' tatsächlich die gleiche Instanz der Liste, was inkorrekt sein sollte. –