Ich verwendete LINQ zum Verketten mehrerer Zeilen in einzelne Zeile. Ich habe Probleme bei der Verwendung der dynamischen Suchseite.Dynamische Suche und Linq, um eine durch Komma getrennte Zeichenfolge zurückzugeben
User Hobby
--------------
Bob Football
Bob Golf
Bob Basketball
Sue Sleeping
Sue Drinking
zu
User Hobby
--------------
Bob Football, Golf, Tennis
Sue Sleeping, Drinking
mit
var users = new[]
{
new { User="Bob", Hobby="Football" },
new { User="Bob", Hobby="Golf" },
new { User="Bob", Hobby="Tennis" },
new { User="Sue", Hobby="Sleeping" },
new { User="Sue", Hobby="Drinking" },
};
var userList = users.ToList();
var result1 = (from user in users
group user by user.User into groupedUserList
select new {
user = groupedUserList.Key,
hobby = groupedUserList.Select(x => x.Hobby).Aggregate((a, b) => (a + ", " + b))
});
var result2 = (from groupeduser in ug
select new{ groupeduser.user, hobby =string.Join(",", groupeduser.hobby)});
Wenn ich mit Hobby Suchfeld
mit result1 = result1.Where hinzufügen (t => t.Hobby. Enthält ("Ball"));
es Fehler werfen ---> Aggregate nicht
unterstütztmit result2 = result2.Where (t => t.Hobby.Contains ("Kugel"));
es werfen System.String Join (System.String, System.String []) nicht auf SQL unterstützt übersetzen
in 'von groupeduser in ug', was' ug'? – currarpickt
Wenn Sie die Funktion Contains in linq in sql konvertieren möchten, können Sie 'users.Where verwenden (s => SqlMethods.Like (s.Hobby,"% {0}% "))' –
tut 'result1.ToList(). Wo (t => t.Hobby.Kontakt ("Ball")); 'Arbeit? – Nsevens