Je travaille avec un dictionnaire IEnumerable (data.Tags)
dans une liste (masterList)
.LINQ: Comment retourner champ différent de celui utilisé par min()
Voici une question typique que je fais (qui fonctionne):
var tagList =
(from data in masterList
from tag in data.Tags
where tag.id == 0x10
select tag).Distinct(new TagComparer());
La classe tag
a des champs Id
, Value
et TranslatedValue
. Je veux rechercher basé sur Id
, utilisez Value
pour déterminer quel est le minimum, puis renvoyer le TranslatedValue
(au lieu de Value
).
Toutes mes tentatives jusqu'ici jeter un ArgumentException, comme ceci:
var tagList =
(from data in masterList
from tag in data.Tags
where tag.id == 0x10
select new
{
tag.Value,
tag.TranslatedValue
};
return tagList.Min().TranslatedValue;
Y at-il une solution élégante à ce sujet?
Qu'est-ce '.min()' devrait être? Comment le compilateur devrait-il le déterminer? –
Comme indiqué ci-dessus, _use 'Value' pour déterminer quel est le minimum_. Quant à comment, c'est pourquoi je demande :) – glenneroo