채널 목록이 있고 일부 채널에 할당되지 않은 장치가 있으며이 장치는 별도의 컨테이너로 전달됩니다. 내가하고 싶은 것은 ForEach 호출 내 목록의 현재 위치 인덱스를 컨테이너에 전달하는 것입니다. 나는 linq을 사용하여 이와 같은 작업을 수행 할 수 있습니까, 아니면 대신 for..loop을 사용하는 것이 더 좋을까요?ForEach 내의 현재 색인 얻기
가능 :) 경우 LINQ를 사용 싶어요 어쨌든 여기 내 코드입니다 : 반드시 인덱스가없는 ForEach
'D가되고있는
item.Channels.Where(ch => !ch.IsSkipped).ForEach(
ch =>
{
if (ch.AssignedUnit == null)
{
//unknownUnitChannels.Add(ch);
unknownUnitChannels.Add(index, ch) <== This is the index i'd like to pass there
}
});
어떤 ForEach 메소드가 무엇입니까? 'IEnumerable '에 정상적으로 존재하지 않습니다 ... 또한, * 필터링 *이나 * after * 필터링 이전의 인덱스 *에 관심이 있으십니까? 예를 들어,'Where' 절로 인해 처음 10 개의 항목이 걸러지면'index'가 0 또는 10으로 기대됩니까? –
또는 약간의 노력을 할애하고 알 수없는 UnUnitChannels.AddRange (item.Channels.Where (ch =>! ch.IsSkipped && ch.AssignedUnit == null)) – Rytmis
가능한 경우 필터링하기 전에. ForEach는 프로젝트에서 사용되는 사용자 지정 확장입니다. 나는 C# foreach를 사용할지도 모른다 – Nostradamus