1. 程式人生 > >使用linq to list 做遞迴

使用linq to list 做遞迴

 private IEnumerable<Test> GetChildren_Menue(int ID, List<Test> XX)
        {
            List<Test> children_Menue = (from p in XX
                                         where p.ParentID == ID
                                         select p
                                                      ).ToList<Test>();
            return children_Menue.ToList().Concat(children_Menue.ToList().SelectMany(t => GetChildren_Menue(t.ID, XX)));
        }

        private void DG()
        {
            List<Test> TT = new List<Test>();
            TT.Add(new Test { ID = 1, IDName = "Test", ParentID = 0 });
            TT.Add(new Test { ID = 2, IDName = "Test", ParentID = 1 });
            TT.Add(new Test { ID = 3, IDName = "Test", ParentID = 1 });
            TT.Add(new Test { ID = 4, IDName = "Test1", ParentID = 2 });
            TT.Add(new Test { ID = 5, IDName = "Test1", ParentID = 2 });
            TT.Add(new Test { ID = 6, IDName = "Test1", ParentID = 3 });
            List<Test> MM = GetChildren_Menue(1, TT).ToList<Test>();
        }

相關推薦

使用linq to list

 private IEnumerable<Test> GetChildren_Menue(int ID, List<Test> XX)         {             List<Test> children_Menue = (from p in XX      

mysql層次查詢

下面是sql指令碼,想要執行一下 把下邊的貼上複製下來,做一個treenodes.sq直接執行便是。。。  /*  Navicat MySQL Data Transfer    Source Server         : mysql_demo3  Source Ser

To Understand! 重點 動態規劃 正則表示式匹配】LeetCode 44. Wildcard Matching

LeetCode 44. Wildcard Matching Solution1:我的答案 遞迴,時間複雜度是O(2n)O(2n)因為超時未能AC 只是記錄一下,以警示後人…… class Solution { public: bool is

使用Python list通過實現一個表示式計算器

因為python list可以同時儲存不同的資料, 並且提供豐富的操作方案, 想想可以同時把數字和運算子號都儲存到列表中, 於是就誕生了使用列表寫個表示式計算器, 思路就是同時將數字和運算子儲存到列表, 然後從左向右計算所有乘除號兩邊的數值, 然後刪除兩個運算元

mysql如何查詢!!

mysql的逆襲:如何做遞迴層次查詢 最近在做一個從oracle資料庫到mysql資料庫的移植,遇到一個這樣的問題      在Oracle 中我們知道有一個 Hierarchical Queries 通過CONNECT BY 我們可以方便的查了所有當前節點下的

list 轉 tree

public List<TreeJsonM> GetTreeJsonMList(UserAdmin UserAdmin, ObjType objType) { Expression<Func<Sys_Supplie

mysql查詢,mysql中從子類ID查詢所有父類(無限分類經常用到)

由於mysql 不支援類似 oracle with ...connect的 遞迴查詢語法之前一直以為類似的查詢要麼用儲存過程要麼只能用程式寫遞迴查詢.現在發現原來一條sql語句也是可以搞定的先來看資料表的結構如下:id  name    parent_id&n

利用遍歷獲取Java複雜物件(物件的屬性仍是物件//list/map)中指定屬性的值

本示例中又三個物件巢狀: UserBO:複雜物件,其中一個屬性是List<AddressBO>或者Map<AddressBO> AddressBO:其中一個屬性是SubAddressBO SubAddressBO:包含目標屬性addrId,且是string型別,查

Haskell --- 利用實現選出List中最大值

wechat:812716131 ------------------------------------------------------ 技術交流群請聯絡上面wechat ----------------------------------------------

斐波那契數列的python實現(list實現)

斐波那契數列概念 斐波那契數列(Fibonacci sequence),又稱黃金分割數列、因數學家列昂納多·斐波那契(Leonardoda Fibonacci)以兔子繁殖為例子而引入,故又稱為“兔子數列”,指的是這樣一個數列:1、1、2、3、5、8、13、21、34、……

查詢資料庫、生成list包含 tuple的情況

'''調整下游'''import csvimport psycopg2import jsonclass IO_rw(object): def __init__(self): self.conn = psycopg2.connect(database="postgres", user="po

mysql的逆襲:如何oracle的start with connect by prior層次查詢

mysql的逆襲:如何做遞迴層次查詢   最近在做一個從oracle資料庫到mysql資料庫的移植,遇到一個這樣的問題        在Oracle 中我們知道有一個 Hierarchical Queries 通過CONNECT BY

手把手教你一個 C 語言編譯器(4):下降

本章我們將講解遞迴下降的方法,並用它完成一個基本的四則運算的語法分析器。 本系列: 什麼是遞迴下降 傳統上,編寫語法分析器有兩種方法,一種是自頂向下,一種是自底自上。自頂向下是從起始非終結符開始,不斷地對非終結符進行分解,直到匹配輸入的終結符;自底向上是不斷地將終

php進行時出現Call to a member function 方法() on null的原因以及解決方案

【原因】:遞迴導致開闢新的棧,在新棧中你的"方法()"這個成員方法是不存在的 【解決方案】:進行遞迴時將"方法()"的所屬類當做引數傳入進去即可解決 【案例如下】:(如果有不清楚的,歡迎給我進行留言),php交流QQ群188386255 ,專業php高階完整視訊免費下載

迭代與To Iterate,Human; to Recurse, Divine.

引言 從前有座山,山裡有座廟,廟裡有個老和尚,正在給小和尚講故事呢!故事是什麼呢?「從前有座山,山裡有座廟,廟裡有個老和尚,正在給小和尚講故事呢!故事是什麼呢?『從前有座山,山裡有座廟,廟裡有個老和尚,正在給小和尚講故事呢!故事是什麼呢?……』」 什麼是遞迴 遞

java 單鏈表list 轉置(反轉) 普通與

單鏈表的轉置 (反轉)   普通方法  通過迴圈與臨時變數來轉置   優點是節省記憶體開銷 public void commonReverse(){ Node curr = head; Node reve = null; while(curr

嘗試用奇數求和

Description 計算非負整數 m 到 n(包括m 和 n )之間的所有奇數的和,其中,m 不大於 n,且n 不大於300。例如 m=3, n=12, 其和則為:3+5+7+9+11=35 I

Python展開巢狀的list

在Python中,用生成器的遞迴的方式展開一個巢狀的list。 def flatten(nested): try: for sublist in nested: if isinstance(sublist,str): yield sublist

用sklearn和tensorflowboston房價的迴歸計算的比較(3)--RNN之神經網路LSTM

在tensorflow裡RNN才是做迴歸計算的正規軍,其中LSTM更是讓人工智慧有了記憶,如果cnn最適合做的是影象識別,那麼LSTM就是視訊識別。網上的教程多是用正餘弦資料在做預測,輸入輸出都是一維,我這用波士頓房價,輸入是13個特徵! 注意與前面兩個模型不同的是,沒有用

VS 2010 std::list.sort函式實現的非merge sort

td::list.sort()採用的是mergesort演算法。 merge sort的遞迴實現非常簡單,一般為 MergeSort(1,n){       MergeSort(1,n/2);       MergeSort(n/2,n);       Merge(1,n