组合框填写asp.net

时间:2011-03-24 05:18:20

标签: c# asp.net linq

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查询来检索城市并添加第一个城市,即孟买和其他城市。第二个查询包含我想要附加到组合的非地铁城市。

基本上我希望地铁城市位于地铁城市的顶层和非地铁。

我已经使用了以下代码:

 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的非地铁城市。

有任何帮助吗?

3 个答案:

答案 0 :(得分:1)

您正在将非metroquery的结果(在第二个foreach循环中)分配给列表,替换List的以前内容。

你应该这样做:

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

答案 1 :(得分: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);
            }

答案 2 :(得分:0)

您可以使用SQL级别过滤来使用union all

来实现此目的

请参阅以下链接。

http://dotnetalliance.blogspot.in/2013/02/how-to-select-major-cities-on-top-in-sql.html