È necessario ottenere un elenco senza distinzione tra maiuscole e minuscole dai risultati di una query di framework di entità. Ho il seguente:Come ottenere un elenco distinto senza distinzione tra maiuscole e minuscole utilizzando Linq ed Entity Framework
var myList = myEF.GroupBy(e => new { e.Code, e.Description })
.Select(e => e.First())
.ToList();
Questo mi dà un elenco distinto, ma è case-sensitive. Ho bisogno di insensibilità al maiuscolo/minuscolo.
ho pensato che dovrei essere in grado di fare qualcosa del genere:
var myList = myEF.GroupBy(e => new { e.Code, e.Description }, StringComparer.InvariantCultureIgnoreCase)
.Select(e => e.First())
.ToList();
Ma questo non sembra voler lavorare con l'oggetto anonimo.
L'aggiunta di .ToLower
o .ToLowerInvariant
non sembra funzionare. Né utilizza Distinct(StringComparer.InvariantCultureIgnoreCase)
anziché GroupBy
.
Sembra che ci dovrebbe essere un modo semplice per farlo, ma non lo trovo.
Se fai case-insensitive, come si fa a garantire distinti-ness? – Mrchief
Puoi provare 'myEF.GroupBy (e => nuovo {e.Code.ToLower(), e.Description.ToLower()})' – Mrchief
d'accordo con @Mrchief, dovrebbe funzionare –