Me gustaría tomar una lista de objetos y convertirla a un diccionario donde la clave es un campo en el objeto, y el valor es una lista de un diferente campo en los objetos que coinciden con la clave. Puedo hacer esto ahora con un bucle, pero creo que esto debería poder lograrse con linq y sin tener que escribir el bucle. Estaba pensando en una combinación de GroupBy
y ToDictionary
pero hasta ahora no he tenido éxito.Convertir la lista <MyObject> al Diccionario <obj.string, Lista <obj.ID>>
Así es como lo estoy haciendo ahora mismo:
var samplesWithSpecificResult = new Dictionary<string, List<int>>();
foreach(var sample in sampleList)
{
List<int> sampleIDs = null;
if (samplesWithSpecificResult.TryGetValue(sample.ResultString, out sampleIDs))
{
sampleIDs.Add(sample.ID);
continue;
}
sampleIDs = new List<int>();
sampleIDs.Add(sample.ID);
samplesWithSpecificResult.Add(sample.ResultString, sampleIDs);
}
Lo más lejos que puedo conseguir con .GroupBy().ToDictionay()
es Dictionary<sample.ResultString, List<sample>>
.
Cualquier ayuda sería apreciada.
Aprende a amar la [Búsqueda] (http: // MSDN. microsoft.com/en-us/library/bb460184.aspx) –