한 번에 하나씩이 아니라 ConcurrentBag에 여러 항목을 한 번에 추가 할 수있는 방법이 있습니까? ConcurrentBag에 AddRange() 메서드가 표시되지 않지만 Concat() 메서드가 있습니다. 그러나, 나를 위해 작동하지 않습니다 :ConcurrentBag - 여러 항목 추가?
ConcurrentBag<T> objectList = new ConcurrentBag<T>();
timeChunks.ForEach(timeChunk =>
{
List<T> newList = Foo.SomeMethod<T>(x => x.SomeReadTime > timeChunk.StartTime);
objectList.Concat<T>(newList);
});
Parallel.ForEach()에 있어야 사용이 코드,하지만 그래서 그것을 해결 할 수있는 위로 변경되었습니다. 변수 newList에는 실제로 객체가 있지만 objectList.Concat <> 행 다음에 objectList는 항상 0 개의 객체가 있습니다. Concat <> 그런 식으로 작동하지 않습니까? Add() 메서드를 사용하여 ConcurrentBag에 항목을 한 번에 하나씩 추가해야합니까?
끝내려면 SelectMany를 사용하십시오. –