imports system.collections.generic
imports system.reflection
public class tablebuilder(of t)
private selectinfos as list(of propertyinfo)
private propinfos as propertyinfo()
sub new()
selectinfos = new list(of propertyinfo)
propinfos = gettype(t).getproperties
end sub
public sub setpropertynames(byval names() as string)
selectinfos.clear()
if names isnot nothing andalso names.count > 0 then
for each p as propertyinfo in propinfos
if names.contains(p.name) then
selectinfos.add(p)
end if
next
end if
end sub
public function createtable() as datatable
dim table as new datatable
if selectinfos.count = 0 then
selectinfos.addrange(propinfos)
end if
for each p as propertyinfo in selectinfos
table.columns.add(p.name, gettype(string))
next
return table
end function
public function todatatable(byval items as ienumerable(of t)) as datatable
dim table as datatable = createtable()
dim templist as new list(of string)
for each item as t in items
for each p as propertyinfo in selectinfos
dim value as object = p.getvalue(item, nothing)
if value isnot nothing then
templist.add(value.tostring)
else
templist.add(string.empty)
end if
next
table.rows.add(templist.toarray)
templist.clear()
next
return table
end function
end class
using system;
using system.collections;
using system.collections.generic;
using system.data;
using system.diagnostics;
using system.io;
using system.reflection;
using system.text.regularexpressions;
namespace dal
props = ps.toarray();
//props = (from propertyinfo p in typeof(t).getproperties() select p.name).toarray;
}/// /// 設定屬性名稱
///
public void setnames(datacolumncollection columns)}}
/// /// 設定屬性名稱
///
public void setnames(params string names)}}
/// /// 把datatable解釋成相應的領域物件。
///
/// 要解析的datatable
/// 領域物件
public listparse(datatable table)
list.add(obj);
}return list;
}/// /// 把datarow解釋成相應的領域物件。
///
/// 要解析的datarow
/// 領域物件
public t parse(datarow row)
return obj;
}/// /// 支援:string, int, long, double, boolean, datetime型別
///
private static void settopvalue(propertyinfo p, ref t obj, object value)
else if (fullname.contains("datetime"))
else if (fullname.contains("boolean"))
else if (numregex.ismatch(fullname))
}else}}
}
JS中將物件轉化為陣列
這個對於大佬來說應該是個很基礎的問題,但是今天我要用到這個的時候卻一下沒想起來該怎麼做,所以打算寫下來加深下影響。舉個例子,如何把乙個物件轉化為 我們都知道,js中物件有兩種取值方式,通過在.後面直接加屬性名取值,這也是我們最常使用的一種方式,例如 let obj console.log obj.n...
JS中將物件轉化為陣列
通過在.後面直接加屬性名取值,這也是我們最常使用的一種方式 let obj console.log obj.name wan let obj console.log obj name wan 中括號獲取的時候,屬性名稱要麼使用變數,要麼應該用字串 物件 let obj 如果目標陣列只是為了得到物件的...
C Excel資料轉化為Datatable
最近做專案,遇到了處理excel的問題,要求以excel為資料來源,直接將excel的資料在datagridview中顯示,主要是分三步進行。第一 建立excel檔案的連線 第二 將excel資料放入datatable 第三 繫結資料。建立excel檔案的連線,返回連線字串 private stri...