物件陣列轉換為DataTable的方法

2021-04-07 13:18:24 字數 1754 閱讀 1047

在我們的專案中,用到了很多物件陣列。需要把物件陣列繫結到datagrid上,但目前好像不能直接繫結。就只有轉換為datatable。好不容易在網上找到了別人寫的乙個類。但和我們的需要比還是差了一點。他只能把物件的屬性轉換為datatable的列。但我們的物件陣列都是webservices自動生成的。也就是沒有屬性,只有public的字段。所以我就在別人的基礎上寫了乙個即可以轉換屬性又可以轉換欄位的類。不過必須要public的哦。在加上我們的專案中經常在物件裡還有物件,所以又支援了物件中包含物件的物件陣列。具體**如下:

using system;

using system.data;

using system.collections;

using system.reflection;

namespace **s.components

#endregion

#region 屬性設定

private bool _columnfromproperty = true;

///

/// datatable列是否根據物件的屬性生成;預設為true,如果為false則由物件的字段生成

///

public bool columnfromproperty

set}

private string _pointstring = ".";

///

/// 點號的替換符號

///

public string pointstring

set}

#endregion

#region 公共方法

///

/// 物件陣列轉換為datatable

///

/// 物件陣列

///

public datatable arraytodatatable(object objarry)

type objtype = objarry[0].gettype();

datatable dt = createdatatable(objtype);

dt = filldatatable(dt, objarry);

return dt;

}#endregion

#region 私有方法

///

/// 建立datatable

///

///

///

private datatable createdatatable(type objtype)

else

for(int i=0; i

private datatable filldatatable(datatable dt, object objarry)

else

}dt.rows.add(drow);

}return dt;

}///

/// 獲取物件的字段資訊

///

/// 物件的型別

/// 上級名稱

///

private arraylist getfieldsinfo(type mytype, string upname)

else

else

else

else

else

}string result;

if(al.count == 0)

else

result = r;

}return result;

}#endregion}}

類陣列物件轉換為陣列的方法

在編寫 時,有時需要對類陣列物件使用foreach map filter等迭代操作,而類陣列物件無法直接呼叫這些方法,因而需將其轉換為陣列。doctype html en utf 8 viewport content width device width,initial scale 1.0 docu...

json轉換為物件

將json字串轉化為物件 param jsondata json串 param beantype 轉換物件 return 轉換好的物件 throws ioexception throws jsonparseexception return t 轉換中可能遇到的情況 轉換時json中的字段沒按照駝峰式...

TP5 JSON物件陣列轉換為普通陣列

於 使用tp5框架做專案時,對於資料的查詢返回的都是物件,雖然也可以當做普通的陣列進行遍歷進而進行後續處理,但這種形式直接扔給前端或者我想在返回的結果中臨時增加乙個資料字段,此時這種json物件陣列形式就行了,臨時的資料字段在物件陣列裡加不進去,所以轉換為普通的陣列後才能更方便的進行處理。publi...