foreach
루프가 작동하지만 을 사용하는 대신 LINQ
을 사용하려고하면 아무런 예외없이 오류가 발생하지 않습니다.foreach 대신 LINQ를 사용하려고하지만 작동하지 않습니다.
public static IEnumerable<PatternInfo> LoadPatterns() {
var directoryInfo = new DirectoryInfo(PatternFullPath);
var dirs = directoryInfo.EnumerateDirectories();
var result = new List<PatternInfo>();
foreach (var info in dirs)
{
result.Add(new PatternInfo
{
PatternName = info.Name,
TemplateFileNames = GetTemplateFiles(info.FullName)
});
}
return result;
}
을하지만이 아니다는 :
이 코드는 노력
public static IEnumerable<PatternInfo> LoadPatterns() {
var directoryInfo = new DirectoryInfo(PatternFullPath);
var dirs = directoryInfo.EnumerateDirectories();
var patterns = dirs.Select(info => new PatternInfo {
PatternName = info.Name,
TemplateFileNames = GetTemplateFiles(info.FullName)
});
return patterns;
}
어떤 조언이 도움이 될 것입니다.
아무 예외도 말하지 않고 오류가 없다면 실제로 무슨 일이 벌어지고 있습니까? 당신이 그것을 축소하면 0 항목과 함께 열거 형가 있습니까? – Tejs
linq 쿼리는 필요할 때까지 실행되지 않고, PatternFullpath는 IEnumerable을 사용할 때까지 변경되었을 수 있습니다. patterns.ToList()를 실행하여 문제가 해결되는지 확인하십시오. –