Wenn Sie dies explizit angeben möchten, wie viele Elemente in welchen Bereich verschoben werden, müssen Sie ein anderes Array erstellen, das die Kategorie enthält. Ich wähle ein Array von "bool", um anzugeben, ob jeder Gegenstand tragbar ist oder nicht. Dann habe ich die beiden Arrays gezippt und gefiltert, ob sie portabel sind oder nicht.
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()
};
Aber das ist immer noch nicht das richtige was dabei zu tun. Hier ist objektorientierte Programmierung wichtig, da die Technologie Kategorieinformation ist muss zu einer einzigen Einheit wie eine Klasse oder Struktur kombiniert werden.
Dies ist, wie es mit Klassen und 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();
}
}
Was die Logik verwendet wird, aussehen würde Ihre Technologie zu kategorisieren? – squillman
@squillman Das Array wird einfach in zwei – ComputersAreCool