如果你想這樣做明確指定有多少物品進入哪個箱,那麼你需要創建另一個數組來保存類別。我選擇使用'bool'數組來指示每個項目是否可移植。然後我將這兩個數組壓縮在一起,並將它們過濾爲便攜式或非便攜式。
string[] technology = new string[] { "Smartphone", "Laptop", "Tablet", "Desktop", "Server", "Mainframe" };
bool[] isPortable = new bool[] { true, true, true, false, false, false };
string[][] categorizedTechnology = new string[][]
{
technology.Zip(isPortable, (tech, test)=> test?tech: null).Where(tech=> tech!=null).ToArray(),
technology.Zip(isPortable, (tech, test)=> test?null: tech).Where(tech=> tech!=null).ToArray()
};
但是,這仍然不是正確的做法。這裏面向對象的編程很重要,因爲技術是類別信息需要像類或結構一樣合併到單個實體中。
這是它會是什麼樣使用類和LINQ
public class Technology
{
public string Name { get; set; }
public bool IsPortable { get; set; }
}
class Program
{
static void Main(string[] args)
{
Technology[] list = new Technology[] {
new Technology() { Name="Smartphone", IsPortable=true },
new Technology() { Name="Laptop", IsPortable=true },
new Technology() { Name="Tablet", IsPortable=true },
new Technology() { Name="Desktop", IsPortable=false },
new Technology() { Name="Server", IsPortable=false },
new Technology() { Name="Mainframe", IsPortable=false },
};
Technology[][] groupedTechnology
= list.GroupBy((tech) => tech.IsPortable)
.Select((group) => group.ToArray()).ToArray();
}
}
是做什麼用的邏輯歸類你的技術怎麼樣? – squillman
@squillman這個數組只是被拆分成兩個 – ComputersAreCool