sagen, dass ich mit bestimmten Namen eine Liste der Zeichenfolge haben:Wie neu gruppieren, was unter einer Schwelle mit Linq ist?
APP_application1.exe
APP_application2.exe
APP_application3.exe
APP_application4.exe
CMD_Batch.exe
PWS_Script.exe
PWS_Script2.exe
PWS_Script3.exe
VBS_Script.exe
VBS_Script2.exe
[...]
Ich möchte zusammen diejenigen mit dem gleichen Präfix neu zu formieren, aber nur, wenn sie über eine Schwelle sind. Diejenigen unter dieser Grenze sind in einem "anderen" -Tag zusammengefasst. Ich möchte auch maximal 5 Gruppen.
Group APP : {APP_application1.exe,APP_application2.exe,APP_application3.exe,APP_application4.exe}
Group PWS : {PWS_Script.exe,PWS_Script2.exe,PWS_Script3.exe}
Group other : {CMD_Batch.exe,VBS_Script.exe,VBS_Script2.exe}
Gerade jetzt, ich habe meine Gruppen fest einprogrammiert, so kann ich mit einem Präfix filtern
filtered = _
(From cell In listFiles _
Where cell.ToUpper().StartsWith(prefix)
Select New SelectListItem() With { _
.Text = cell, _
.Value = cell _
}).ToList()
oder einen Filter mit denen außerhalb:
filtered = _
(From cell In listFiles _
Let prefix = cell.Substring(0, 3).ToUpper()
Where Not LIST_CODE.Contains(prefix)
Select New SelectListItem() With { _
.Text = cell, _
.Value = cell _
}).ToList()
Wo LISTE_CODE = {"APP","PWS"}
Ich möchte um LISTE_CODE
loszuwerden und etwas wie MIN_GROUP_SIZE = 3
und MAX_GROUP = 5
zu verwenden, um mo zu sein re dynamisch.
Im Moment habe ich
Dim grp =
(From cell In listFiles _
Let prefixe = cell.Substring(0.3).ToUpper()
Group By pre = prefixe Into g = Group
Where g.Count() < MIN_GROUP_SIZE
Select g)
Aber es funktioniert nicht bei allen Gruppe.
Habe ich den richtigen Ansatz?
Was ist los mit meinem group by
?