1
사용하여 중첩 루프 목록 : 더 컴팩트하고 이해로 번역, this answer를 사용하여,프로세스 나는이 같은 루프했다 PLINQ
this.results = new List<Tuple<int, IEnumerable<Thing>>>();
var utcNow = DateTime.UtcNow;
var resultsLocker = new object();
Parallel.ForEach(
this.dataHelper.GetActiveIds(),
id =>
{
var result = new Tuple<int, IEnumerable<Thing>>(
id,
this.dataHelper.GetThing(id, this.PossibleLastRunTime, utcNow));
lock (resultsLocker)
{
this.results.Add(result);
}
});
과 :
this.results = this.dataHelper.GetActiveIds()
.AsParallel()
.Select(id => new Tuple<int, IEnumerable<Thing>>(
id,
this.dataHelper.GetThing(id, this.PossibleLastRunTime, utcNow)))
.ToList();
지금 나는이 더 복잡한 중첩 된 루프는 다음과 같습니다.
나는 비슷한 것을하고 싶지만, h이 코드는
measures = this.results
.AsParallel()
.Select(result => result.Item2.Select(destination =>
new Tuple<int, object, object>(
result.Item1,
destination.Message,
destination.DestinationName)).ToList()).ToList();
목록 목록을 얻는 것 같아서 원본 코드 당 하나의 목록 만 있으면됩니다. 꽤 간결하게 LINQ를 사용하여이 작업을 수행 할 수 있습니까? 그렇다면 어떻게?