foreach在foreach里面

时间:2015-08-20 08:45:34

标签: c# for-loop foreach

我有一个包含文件夹中文件大小的数组,然后我有一个包含实际大小的列表。 gf.GameInformation是一个包含文件名字符串和当前文件大小的字典。我想循环遍历文件中的每个元素,并检查当前元素大小是否与gf.GameInformation中的实际文件大小相同或不同,但这种方法给我一个奇怪的结果。

        FileInfo[] files = fileInfo.GetFiles();

        foreach (FileInfo i in files)
        {
            foreach(var x in gf.GameInfomation)
            {
                if (i.Length != x.Value)
                {
                    Console.WriteLine(i.Length);
                    break;
                }
            }
        }

2 个答案:

答案 0 :(得分:1)

我假设您不想评估每个gf.GameInformation,而只评估与FileInfo i相对应的FileInfo[] files = fileInfo.GetFiles(); foreach (FileInfo i in files) { if (i.Length != gf.GameInfomation[i.Name].Value) { //Do something } } 。你可以按照

的方式做点什么
xlab

答案 1 :(得分:1)

你的意思是这样吗?

FileInfo[] files = fileInfo.GetFiles();

foreach (FileInfo i in files)
{
   if(gf.GameInfomation[i.Name] !=i.Length ) //Do something;
} 

或者如果你可以使用Linq

FileInfo[] files = fileInfo.GetFiles();
files.Where(x=>gf.GameInfomation[x.Name] !=x.Length).ToList().ForEach(
//do Something
);