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的非地铁城市。
有任何帮助吗?
答案 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