晚上好,我正在構建一個基本的控制臺應用程式來學習如何過濾物件串列屬性資料。我正在嘗試根據用戶選擇的物件屬性及其值過濾物件串列,但我正在努力構思如何將用戶輸入連接到物件屬性,因為屬性沒有索引。例如,如果我們有一個汽車串列,用戶選擇按年份過濾并輸入特定年份,我們將回傳這些汽車。
foreach(var car in listOfCars)
{
if(...)
{
Console.WriteLine(car.Name);
Console.WriteLine(car.Year);
}
}
我可以使用通配符過濾資料,但是如何將用戶選擇的輸入(數字)連接到屬性?
uj5u.com熱心網友回復:
好吧,它不一定是數字:
Console.WriteLine("Filter by what? You can write YEAR, MAKE or MODEL");
var byWhat = Console.ReadLine();
Console.WriteLine("And what is the search term?");
var term = Console.ReadLine();
List<Car> filtered = new List<Car>();
if(byWhat == "YEAR"){
int whatYear = int.Parse(term);
foreach(var car in cars){
if(car.Year == whatYear)
filtered.Add(car);
}
} else if(byWhat == ...) {
... foreach(...)
}
如果需要,可以隨意將其轉換為使用數字,并添加一些輸入驗證、不區分大小寫等。
這里的要點是你可以創建一個變數來代表你將要得到的常見事物;過濾后的汽車串列。你可以做一個 if this then that, else if other then another.. 每個if分支都意味著過濾的汽車串列最終不同.. 但它仍然是最后的汽車串列,所以無論你做什么過濾程序常見的輸出形式可以用同樣的方式處理。
筆記; 如果你愿意,你可以把它翻過來放在if里面foreach- 它不會明顯變慢
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/401862.html
下一篇:從同一個父類的另一個類訪問物件
