C 匿名委託遞迴

2021-09-28 22:36:01 字數 1590 閱讀 7190

方式一:

var channelnewlist = new list();

action> func = null;

func = (q, list) =>}};

foreach (var item in channel)

方式二:

載入的資料生成到select下拉框中,按照層級順序顯示

/// /// 讀取部門層級,全部部門都顯示在同一級,父級後面跟子集,每個節點有level層級int資料,

///

///

///

public async task> getlistbytreeasync(int? state)

else

// 排除父id和本身id相同導致的遞迴異常

list2 = list2.where(x => x.id != x.parent_id).tolist();

listclist = list2.select(x => new departmentview() ).tolist();

//輸出列表,全部部門都顯示在同一級目錄,子集緊跟父級後面

listdlist = new list();

action> func = null;

func = (q, list) =>

} }};

//讀取一級部門

var list1 = clist.where(x=>string.isnullorwhitespace(x.parent_id)).tolist();

for (int i = 0; i < list1.count; i++)

func(item, dlist);

}foreach (var item in dlist)

return dlist;

}

public class departmentview 

/// /// 部門名稱

///

public string department_name

/// /// 父級id

///

public string parent_id

/// /// 是否啟用,1=啟用,0=禁用

///

public byte? d_status

/// /// 排序

///

public int sno

/// /// 當前等級

///

public uint level

/// /// 子集部門

執行結果:

翰林院*學士院

**學士甲舍

**學士乙舍

**學士丙舍

*中書舍人院

門下省*禮部

*吏部*工部

*刑部*戶部

*兵部

C 委託 匿名委託

c 委託 匿名委託 委託變數在繫結方法時,是把方法名賦值給了委託變數名,這 樣就需要在類裡面定義方法,而有些方法只用到了 次,這樣的 方法在類裡面過多時,程式的可讀性就不是太好,針對這種情 況,可以使用匿名委託,即不用在類裡面額外定義方法.delegate定義的匿名委託 格式 delegate 引數...

C 2 0 匿名委託

delegate經常被人用來與 相比較,其實兩者在某種程度上由很多共同點。不過delegate有很多更加強大的地方。首先,delegate中可以註冊任意多個 在乙個delegate被呼叫的時候,已經註冊的過程將會被逐個呼叫。其次,delegate允許註冊乙個物件的方法,而不像c 中指可以使用靜態方法...

C 委託 使用匿名方法

使用c 委託還有另一種重要方法 通過匿名方法。其中,匿名方法是用作委託引數的乙個 塊。請看下面的例子 匿名方法的作用是使 更簡化,方便了程式設計師。如果沒有匿名方法,則定義一套事件監聽需要這樣 class program 一般來說,定義的myeventhandler方法只用來響應事件,只在上面那一處...