Finden Sie die Anzahl von doppelten Elementen, die in einem C# - Liste
Ich bin mit der Liste in C#. Code ist, wie unten erwähnt:
TestCase.cs
public class TestCase
{
private string scenarioID;
private string error;
public string ScenarioID
{
get
{
return this.scenarioID;
}
set
{
this.scenarioID = value;
}
}
public string Error
{
get
{
return this.error;
}
set
{
this.error = value;
}
}
public TestCase(string arg_scenarioName, string arg_error)
{
this.ScenarioID = arg_scenarioName;
this.Error = arg_error;
}
}
Liste bin ich createing ist:
private List<TestCase> GetTestCases()
{
List<TestCase> scenarios = new List<TestCase>();
TestCase scenario1 = new TestCase("Scenario1", string.Empty);
TestCase scenario2 = new TestCase("Scenario2", string.Empty);
TestCase scenario3 = new TestCase("Scenario1", string.Empty);
TestCase scenario4 = new TestCase("Scenario4", string.Empty);
TestCase scenario5 = new TestCase("Scenario1", string.Empty);
TestCase scenario6 = new TestCase("Scenario6", string.Empty);
TestCase scenario7 = new TestCase("Scenario7", string.Empty);
scenarios.Add(scenario1);
scenarios.Add(scenario2);
scenarios.Add(scenario3);
scenarios.Add(scenario4);
scenarios.Add(scenario5);
scenarios.Add(scenario6);
scenarios.Add(scenario7);
return scenarios;
}
Nun bin ich das Durchlaufen der Liste. Ich möchte zu finden, die, wie viele doppelte Testfälle sind in einer Liste mit gleichen ScenarioID. Gibt es eine Möglichkeit, es zu lösen, ist die Verwendung von Linq oder jede eingebaute Methode für die Liste?
Grüße,
Priyank
Was ist die Antwort in deinem Beispiel? 1, 2, oder 3 (oder andere)?
stackoverflow.com/questions/5080538/...
Warum brauchen Sie zum zählen der Elemente duplizieren? (Neugierig)
Die Verwendung von linq, Gruppe von scenarioID und dann zählen Sie die Größe der jeweiligen Gruppe. Oder erstellen Sie ein Dictionary<string, int>, mit scenarioID als Schlüssel und die Speicherung der Anzahl der id als Wert.
Ich bin mir nicht sicher, ob ich verstehe, was Sie suchen.
stackoverflow.com/questions/5080538/...
Warum brauchen Sie zum zählen der Elemente duplizieren? (Neugierig)
Die Verwendung von linq, Gruppe von scenarioID und dann zählen Sie die Größe der jeweiligen Gruppe. Oder erstellen Sie ein Dictionary<string, int>, mit scenarioID als Schlüssel und die Speicherung der Anzahl der id als Wert.
Ich bin mir nicht sicher, ob ich verstehe, was Sie suchen.
InformationsquelleAutor Priyank Thakkar | 2012-03-28
Schreibe einen Kommentar Antworten abbrechen
Du musst angemeldet sein, um einen Kommentar abzugeben.
Versuchen Sie dies:
InformationsquelleAutor Daniel Hilgarth
Als erste Idee:
eine bessere definition von "gleich" (dupe) benötigt wird. Als ich versuchte, zu sagen, es ist eine grobe Skizze, löst die Auszählung Problem.
Das wird nicht funktionieren, out of the box - du ausgelassen, die Notwendigkeit zu implementieren, die entweder eine benutzerdefinierte Gleichheit comparer oder überschreiben Gleichheit innerhalb des OP ' s Klasse
eingefügt ein Platzhalter.
InformationsquelleAutor Henk Holterman
Nur die doppelte Zählung:
InformationsquelleAutor BrokenGlass
Geben Sie eine Gruppe für jede ScenarioID, die mehr als ein Artikel. Die Anzahl der Gruppen ist die Anzahl der doppelten Gruppen, und die Zählung der einzelnen Gruppen intern ist die Anzahl der Duplikate, die einzelne Element.
Zusätzliche Hinweis, die
.Skip(1).Any()
gibt es da eine.Count()
imWhere
Klausel müssten die Iteration jedes einzelne item, nur um herauszufinden, dass es mehr als eine.Skip(1).Any()
möglicherweise ein besserer Ansatz, wenn Sie wollen, diese Strecke zu fahrenJa, beide sind in konstanter Zeit statt O(n), aber deiner ist in der Tat besser; bearbeitet.
InformationsquelleAutor Servy
Etwas wie dies vielleicht
InformationsquelleAutor Arion
Bekommen insgesamt Anzahl der Duplikate, aber eine andere:
Bekommen distinct Duplikate:
InformationsquelleAutor nawfal