以前一直用 var query = ***.select(c=>new ); 來取表中的某二列字段,今天有個應用需要轉成dictionary,很少這樣使用,居然忘記了寫法!
回憶了半天終於寫對了,貼在這裡備個份,方便以後查詢:
using
system;
using
system.collections.generic;
using
system.linq;
namespace
dictest);}
dictionary
<
guid,
int>
dic
=lst.todictionary(
newfunc
<
test, guid
>
(c =>
c.id),
newfunc
<
test,
int>
(c =>
c.num));
//如果覺得上面的寫法太複雜,還可以簡化為
// dictionarydic = lst.todictionary(c => c.id, c => c.num);
foreach
(guid id
indic.keys)
\tvalue:
", id, dic[id]);
}console.read();}}
public
class
test
public
intnum
public
string
name }}
如果用reflector反射一下,會發現實際上編譯器自動生成了類似以下**:(部分名稱做了友好處理)
[compilergenerated]
private
static
func
<
test, guid
>
funcguid;
[compilergenerated]
private
static
func
<
test,
int>
funcint;
[compilergenerated]
private
static
intmnum(test c)
[compilergenerated]
private
static
guid mid(test c)
private
static
void
main(
string
args)
dictionary
<
guid,
int>
dic
=lst.todictionary
<
test, guid,
int>
((funcguid
!=null) ?
funcguid : (funcguid
=new
func
<
test, guid
>
(program.mid)), (funcint
!=null) ?
funcint : (funcint
=new
func
<
test,
int>
(program.mnum)));
foreach
(guid id
indic.keys)
\tvalue:
", id, dic[id]);
}console.read();}
ps:今天寫的好象都是些水文 :)
LINQ 之 基本 LINQ 查詢操作
在 linq 查詢中,第一步是指定資料來源。像在大多數程式語言中一樣,必須先宣告變數,才能使用它。在 linq 查詢中,最先使用from子句的目的是引入資料來源和範圍變數。queryallcustomers 是 ienumerable型別 資料來源 customers 和範圍變數 cust var ...
linq 學習筆記之 Linq基本子句
1 from 子句 乙個linq表示式,必須是以from子句開頭。var value from v in values where v.indexof it 1 select v 2復合from子句 多重巢狀查詢 便於自己理解 var query from a in aa from b in a.b...
LINQ之物件標識
實際上,通常我們是將資料從資料庫中提取出來放入另一層中,應用程式在該層對資料進行處理。這就是 linq to sql 支援的模型。將資料作為行從資料庫中提取出來時,你不期望表示相同資料的兩行實際上對應於相同的行例項。如果您查詢特定客戶兩次,您將獲得兩行資料。每一行包含相同的資訊。對於物件。你期望在你...