Bazı kıyaslama testlerinin sonuçlarını içeren bir sınıfa sahibim. sınıf az ya da çok şuna benzer: Tüm testleri defalarca yayınlanıyorduysaİki değerle gruplandırma ve üçüncü bir hesaplama
public class TestResult
{
public string TestName { get; set; }
public int SampleSize { get; set; }
public double Result { get; set; }
}
, bu yüzden gibi, her numune boyutu için birçok sonucu: Artık
TestName: "MemoryTest", SampleSize: 1024, Result: 2.4741
TestName: "MemoryTest", SampleSize: 1024, Result: 2.5029
TestName: "MemoryTest", SampleSize: 1024, Result: 2.4902
TestName: "MemoryTest", SampleSize: 2048, Result: 4.5654
TestName: "MemoryTest", SampleSize: 2048, Result: 4.7156
TestName: "MemoryTest", SampleSize: 2048, Result: 4.2238
TestName: "MemoryTest", SampleSize: 4096, Result: 10.1863
TestName: "MemoryTest", SampleSize: 4096, Result: 9.9471
TestName: "MemoryTest", SampleSize: 4096, Result: 10.2240
TestName: "GraphicsTest", SampleSize: 1024, Result: 2.4741
TestName: "GraphicsTest", SampleSize: 1024, Result: 2.5029
TestName: "GraphicsTest", SampleSize: 1024, Result: 2.4902
TestName: "GraphicsTest", SampleSize: 2048, Result: 4.5654
TestName: "GraphicsTest", SampleSize: 2048, Result: 4.7156
TestName: "GraphicsTest", SampleSize: 2048, Result: 4.2238
TestName: "GraphicsTest", SampleSize: 4096, Result: 10.1863
TestName: "GraphicsTest", SampleSize: 4096, Result: 9.9471
TestName: "GraphicsTest", SampleSize: 4096, Result: 10.2240
Ben oluşturmak istiyorum Tüm sonuçların ortalamasını içeren, ancak hem TestName hem de SampleSize tarafından gruplandırılmış liste.
Yukarıdaki örnekte, her SampleSize için ortalamalar ile birlikte 6 sonuç için: 3 GraphicTest ve 3 for MemoryTest içeren bir listeye sahip olmak istiyorum.
İki farklı sütuna göre gruplandırmada sorun yaşıyorum.
var _Consolidation =
from _R in Results
group _R by new { _R.TestName, _R.SampleSize } into _G
select new TestResult()
{
TestName = _G.Key.TestName,
SampleSize = _G.Key.SampleSize,
Result = from _Res
in Results
where _Res.TestName == _G.Key.TestName && _Res.SampleSize == _G.Key.SampleSize
select _X => new
{
// ? Average Result? How to calculate it?
}
};
Ama ben emin değilim:
Benim iyi yaklaşım şimdiye kadar olduğunu ... Birkaç yollarını denedim, ama üzerinde bir kavrayışa alamayan Doğru yoldan gidiyorum.