J'ai une requête LINQ qui recherche une chaîne (en utilisant une regex) dans plusieurs champs. Je veux trier les résultats en fonction du champ dans lequel le texte a été trouvé.Trier par critères de recherche C# LINQ
Actuellement, j'ai ceci:
var results = from i in passwordData.Tables["PasswordValue"].AsEnumerable()
where r.IsMatch(i.Field<String>("Key").Replace(" ","")) ||
r.IsMatch(i.Field<String>("Username").Replace(" ","")) ||
r.IsMatch(i.Field<String>("Other").Replace(" ",""))
orderby i.Field<String>("Key"),
i.Field<String>("Other"),
i.Field<String>("Username")
select i;
Je veux correspondances trouvées dans la première clé, puis les matchs trouvés dans d'autres, et les matchs puis trouvé Nom d'utilisateur. Si possible, les correspondances qui correspondent à la fois à la clé et à l'autre doivent être effectuées avant les correspondances qui correspondent uniquement à la clé.
Le code que j'ai actuellement sortes basé sur la première clé, donc si une correspondance est trouvée sur l'autre, mais commence avec une clé A, il sera un tri avant correspondance trouvée clé où commence la clé avec un Z.
Merci d'avance, ce n'est pas une question difficile, je pense, mais je ne peux pas comprendre comment faire cela comme je suis nouveau à LINQ.
Merci beaucoup, cela a fonctionné! – Ruud