f1.txt,f2.txt,....f15.txt
과 같은 폴더에 텍스트 파일이 있습니다. 나는 2배열의 항목 조합을 모두 얻으십시오.
최종 결과는 내가
static IEnumerable<IEnumerable<T>>
GetKCombs<T>(IEnumerable<T> list, int length) where T : IComparable
{
if (length == 1) return list.Select(t => new T[] { t });
return GetKCombs(list, length - 1)
.SelectMany(t => list.Where(o => o.CompareTo(t.Last()) > 0),
(t1, t2) => t1.Concat(new T[] { t2 }));
}
그런 다음 코드를 사용 main 메소드에서 호출
{f1.txt, f2.txt}, {f1.txt, f3.txt}....
해야 길이가 이들의 조합을 얻으려면 .
string[] files = Directory.GetFiles(@"C:\Users\Downloads\Samples", "*.txt");
IEnumerable<IEnumerable<string>> filescombination = GetKCombs(files, 2);
하지만 나는 아무 것도 얻지 못했습니까?
편집 : 직접 실행 창에
foreach(var x in filescombination)
{
Console.WriteLine(x);
}
, 우리는 '파일'당신이 기대하는 파일의 목록을 포함
?x
{System.Linq.Enumerable.ConcatIterator<string>}
first: null
second: null
는 당신이 실제로'x' 반복 봤어을? – svick
예, Console.WriteLine (x) 다음에 "}"에 중단 점을 넣습니다. –