Linq之ToDictionary的寫法

2021-09-05 22:09:50 字數 1943 閱讀 2422

以前一直用 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 支援的模型。將資料作為行從資料庫中提取出來時,你不期望表示相同資料的兩行實際上對應於相同的行例項。如果您查詢特定客戶兩次,您將獲得兩行資料。每一行包含相同的資訊。對於物件。你期望在你...