我總結了我的問題,在以下c#代碼片段中。我通過review.we過濾酒店。我們從用戶查看用戶在逗號分隔值from.Currently我循環瀏覽用戶評論並將每個結果合併爲單個結果。 現在,我想將循環和linq查詢寫入單個linq查詢中。結合foreach循環和linq查詢到單個linq查詢
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace LinqST
{
public class Hotel
{
public string Name { get; set; }
public int Review { get; set; }
}
public class DAL
{
public static List<Hotel> Get()
{
return new List<Hotel>()
{
new Hotel{Name="Hotel1",Review=4},
new Hotel{Name="Hotel2",Review=2},
new Hotel{Name="Hotel3",Review=2},
new Hotel{Name="Hotel4",Review=3},
new Hotel{Name="Hotel5",Review=5},
new Hotel{Name="Hotel6",Review=5},
new Hotel{Name="Hotel61",Review=4},
new Hotel{Name="Hotel6",Review=4}
};
}
}
class Program
{
static void Main(string[] args)
{
var filterHotel = "3,4";
var tempList = new List<Hotel>();
foreach (var item in Array.ConvertAll(filterHotel.Split(','), s => int.Parse(s)))
{
var list = DAL.Get().Where(x => x.Review == item);
tempList = tempList.Union(list).ToList();
}
}
}
}
感謝您的答案。我可以將這兩個查詢結合到單個linq查詢中 –
@geek:您可以*在一個語句中做到這一點,但有什麼好處?我會補充說,作爲一個選項,但我不認爲這是一個好主意。 –
我一直在尋找像解決方案的查詢表達式:) –