2011-03-24 52 views
0
var metroquery = (from metro in objCommon.Lst_Cities 
where (SqlMethods.Like(metro.CityNM, "Mumbai") || 
SqlMethods.Like(metro.CityNM, "Delhi")|| 
SqlMethods.Like(metro.CityNM, "Kolkata") || 
SqlMethods.Like(metro.CityNM, "Chennai") || 
SqlMethods.Like(metro.CityNM, "Bangalore") || 
SqlMethods.Like(metro.CityNM, "Pune") || 
SqlMethods.Like(metro.CityNM ,"Ahmedabad") || 
SqlMethods.Like(metro.CityNM , "Hyderbad")) 
select metro).ToList(); 

    var nonmetroquery = (from metro in objCommon.Lst_Cities 
    where !metro.CityNM.Contains("Mumbai") && 
    !metro.CityNM.Contains("Delhi") && 
    !metro.CityNM.Contains("Kolkata") && 
    !metro.CityNM.Contains("Chennai") && 
    !metro.CityNM.Contains("Bangalore") && 
    !metro.CityNM.Contains("Pune") && 
    !metro.CityNM.Contains("Ahmedabad") && 
    !metro.CityNM.Contains("Hyderbad") 
    select metro).ToList(); 

我寫了這兩個Linq查詢來檢索城市,並添加城市的第一順序,即孟買和其他人在頂部。第二個查詢包含我想要附加到組合的非城市城市。組合框填寫asp.net

基本上我希望地鐵城市位於頂層,非地鐵位於地鐵城市下面。

我用下面的代碼是:

List<Lst_City> lstCity1 = new List<Lst_City>(); 


      foreach (var t in metroquery) 
      { 

       lstCity1 = metroquery; 

      } 

      System.Threading.Thread.Sleep(200); 

      foreach (var t in nonmetroquery) 
      { 
       lstCity1 = nonmetroquery; 
      } 

但我只獲得綁定到ComboBox非地鐵的城市。

任何幫助提示?

回答

1

在你的foreach方法中,要添加的整個列表,而不是var t

也許這會工作:

List<Lst_City> lstCity1 = new List<Lst_City>(); 

      foreach (var t in metroquery) 
      { 

       lstCity1.Add(t); 

      } 

      System.Threading.Thread.Sleep(200); 

      foreach (var t in nonmetroquery) 
      { 
       lstCity1.Add(t); 
      } 
1

您正在將nonmetroquery的結果(在第二個foreach循環中)分配給您的列表,替換列表的前一個內容。

你應該做這樣的事情:

lstCity1.AddRange(metroquery); 
lstCity1.AddRange(nonmetroquery); 
+0

感謝朋友,但拋出了System.OutOfMemoryException異常。 – abhijit 2011-03-24 05:32:10

+0

你大約有多少物品? (上面的代碼應該替換foreach循環。) – Gimno 2011-03-24 05:36:17

+0

ryt gimmo謝謝你是我已經取代了foreach循環感謝了很多 – abhijit 2011-03-24 05:46:05