Wie einzigartig ersten Brief von Namen zu erhalten und mit diesem Schreiben von SQL Server Start von Namen zählen mit LINQ?

StackOverflow https://stackoverflow.com/questions/872885

  •  22-08-2019
  •  | 
  •  

Frage

ich mit ASP.NET MVC 1.0 ein paar Tagen spielt. Ich begann mit einem einzigen Tisch DB namens ‚Kontakte‘, mit sehr einfacher Struktur z.B. Titel, Fullname, Name, E-Mail, Telefon, Adresse etc.

Ich bin mit LINQ als mein Modell.

In meiner Hauptansicht wollte ich eine Liste von Buchstaben angezeigt werden, die passenden volle Namen haben mit dem Alphabet beginnen plus der Anzahl der vollen Namen. Some ähnlich wie unten dargestellt:

A - (2)
D - (4)
J - (1)
und so weiter. Eine besondere Sache über das Display ist, dass ich möchte nicht jene Alphabete anzuzeigen, haben keine Namen mit ihnen beginnen.

Ich habe versucht, ein paar Anfragen, aber nicht gelang. Jede Hilfe dieser Abfrage lösen wird geschätzt. Bitte geben Sie den Code in VB.NET Sprache.

Danke.

War es hilfreich?

Lösung

    var query = from c in contacts
                group c by c.FullName[0] into cg
                select new { FirstChar = cg.Key, Count = cg.Count() };

sollte funktionieren

Andere Tipps

Es ist ein Beispiel auf MSDN dass sehr ähnlich:

public void Linq41() {
            string[] words = { "blueberry", "chimpanzee", "abacus", "banana", "apple", "cheese" };

            var wordGroups =
                from w in words
                group w by w[0] into g
                select new { FirstLetter = g.Key, Words = g };

            foreach (var g in wordGroups) {
                Console.WriteLine("Words that start with the letter '{0}':", g.FirstLetter);
                foreach (var w in g.Words) {
                    Console.WriteLine(w);
                }
            }
        }

Sie müßten die Worte ändern = g = g.Count in der select-Anweisung an den Grafen, so dass Sie nur die Gesamtsumme der Elemente in der Gruppe abgefragt werden.

In VB.NET:

Dim FirstLetterCounts = From c In contacts _
                        Group c By Key = c(0) Into NameGroup _
                        Select FirstLetter = Key, Count = NameGroup.Count()

For Each g In FirstLetterCounts
    Console.WriteLine("First Letter = {0}, Count = {1}", g.Key, g.Count)
Next
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top