C# asp.net中的组合框填充

C# asp.net中的组合框填充,c#,asp.net,linq,C#,Asp.net,Linq,我编写了这两个Linq查询来检索城市并添加城市的第一个顺序,即孟买和顶部的其他城市。第二个查询包含我想附加到组合中的非地铁城市 基本上,我希望地铁城市在顶部,非地铁城市低于地铁城市 我为此使用了以下代码: var metroquery = (from metro in objCommon.Lst_Cities where (SqlMethods.Like(metro.CityNM, "Mumbai") || SqlMethods.Like(metro.CityNM, "Delhi" )|| Sq

我编写了这两个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();
List lstCity1=新列表();
foreach(metroquery中的变量t)
{
lstCity1=metroquery;
}
系统线程线程睡眠(200);
foreach(非MetroQuery中的var t)
{
lstCity1=非MetroQuery;
}
但我只得到绑定到组合框的非地铁城市


有任何帮助提示吗?

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

你应该这样做:

 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;
            }

在foreach方法中,您添加的是整个列表,而不是
var t

也许这会奏效:

lstCity1.AddRange(metroquery);
lstCity1.AddRange(nonmetroquery); 
List lstCity1=新列表();
foreach(metroquery中的变量t)
{
1.增加(t);
}
系统线程线程睡眠(200);
foreach(非MetroQuery中的var t)
{
1.增加(t);
}

您可以使用SQL级别的过滤,通过使用union all来实现这一点

请参考下面的链接


您大约有多少项?(上面的代码应该替换foreach循环。)ryt gimmo感谢这就是我替换foreach循环的原因,非常感谢
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);
            }