Wie nehme ich eine DataTable und konvertiere sie in eine Liste?DataTable zur Liste <object>
Ich habe einige Code unten sowohl in C# und VB.NET enthalten, das Problem mit diesen beiden ist, dass wir ein neues Objekt erstellen, um die Daten zurückzugeben, die sehr teuer ist. Ich muss einen Verweis auf das Objekt zurückgeben.
Das DataSetNoteProcsTableAdapters.up_GetNoteRow-Objekt implementiert die INote-Schnittstelle.
Ich bin mit ADO.NET, zusammen mit .NET 3.5
C# -Code
public static IList<INote> GetNotes()
{
DataSetNoteProcsTableAdapters.up_GetNoteTableAdapter adapter =
new DataSetNoteProcsTableAdapters.up_GetNoteTableAdapter();
DataSetNoteProcs.up_GetNoteDataTable table =
new DataSetNoteProcs.up_GetNoteDataTable();
IList<INote> notes = new List<INote>();
adapter.Connection = DataAccess.ConnectionSettings.Connection;
adapter.Fill(table);
foreach (DataSetNoteProcs.up_GetNoteRow t in table) {
notes.Add((INote)t);
}
return notes;
}
VB.NET-Code
Public Shared Function GetNotes() As IList(Of INote)
Dim adapter As New DataSetNoteProcsTableAdapters.up_GetNoteTableAdapter
Dim table As New DataSetNoteProcs.up_GetNoteDataTable
Dim notes As IList(Of INote) = New List(Of INote)
adapter.Connection = DataAccess.ConnectionSettings.Connection
adapter.Fill(table)
For Each t As DataSetNoteProcs.up_GetNoteRow In table
notes.Add(CType(t, INote))
Next
Return notes
End Function
Gibt es Gründe, warum Sie nicht LINQ2SQL für diese Verwendung? –
Dup: http://stackoverflow.com/questions/545328/datatable-to-generic-list-memory-leak/545429#545429 –
Der Kunde möchte LINQ2SQL oder LINQ generell nicht verwenden. Danke für den Link, es wird eine Menge helfen. Ich werde einige Male laufen und sehen, was passiert – Coppermill