如何获取DataTable并将其转换为List?
我在C#和VB.NET中都包含了一些代码,这两个问题都是我们创建一个新对象来返回数据,这是非常昂贵的.我需要返回对象的引用.
DataSetNoteProcsTableAdapters.up_GetNoteRow对象确实实现了INote接口.
我正在使用ADO.NET和.NET 3.5
c#代码
public static IListGetNotes() { DataSetNoteProcsTableAdapters.up_GetNoteTableAdapter adapter = new DataSetNoteProcsTableAdapters.up_GetNoteTableAdapter(); DataSetNoteProcs.up_GetNoteDataTable table = new DataSetNoteProcs.up_GetNoteDataTable(); IList notes = new List (); adapter.Connection = DataAccess.ConnectionSettings.Connection; adapter.Fill(table); foreach (DataSetNoteProcs.up_GetNoteRow t in table) { notes.Add((INote)t); } return notes; }
VB.NET代码
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
Junior M.. 6
我有另一种方法可能值得一看.这是一种帮助方法.创建名为CollectionHelper的自定义类文件:
public static IListConvertTo (DataTable table) { if (table == null) return null; List rows = new List (); foreach (DataRow row in table.Rows) rows.Add(row); return ConvertTo (rows); }
想象一下,你想获得一份客户名单.现在您将拥有以下来电者:
ListmyList = (List )CollectionHelper.ConvertTo (table);
您在DataTable中拥有的属性必须与您的Customer类(名称,地址,电话等字段)匹配.
我希望它有所帮助!
谁愿意知道为什么要使用列表而不是DataTables:链接文本
完整样本:
http://lozanotek.com/blog/archive/2007/05/09/Converting_Custom_Collections_To_and_From_DataTable.aspx
我有另一种方法可能值得一看.这是一种帮助方法.创建名为CollectionHelper的自定义类文件:
public static IListConvertTo (DataTable table) { if (table == null) return null; List rows = new List (); foreach (DataRow row in table.Rows) rows.Add(row); return ConvertTo (rows); }
想象一下,你想获得一份客户名单.现在您将拥有以下来电者:
ListmyList = (List )CollectionHelper.ConvertTo (table);
您在DataTable中拥有的属性必须与您的Customer类(名称,地址,电话等字段)匹配.
我希望它有所帮助!
谁愿意知道为什么要使用列表而不是DataTables:链接文本
完整样本:
http://lozanotek.com/blog/archive/2007/05/09/Converting_Custom_Collections_To_and_From_DataTable.aspx