2010-11-23 63 views
0

我有下面的代码填充一个字符串,IList的,或阵:C#如何通过if语句

foreach (string file in FleName) 
      if (!ActualFiles.Any(x => Path.GetFileName(x).Equals(file))) 
      {     
        IList<string> MissingFiles = file; 
      } 

我有访问此方法3个if语句。在if语句结尾,我需要显示整个IList。

所以继承人是我想要的。首先如果语句进入方法并在每个值前返回每个带有“EqpFle - ”字样的文件

第二个if statemenet我希望它返回所有名称前带有“DPFle-”的项目,并且simialr为第三。

在所有的if语句结束时(这是在每个)我希望它读取整个列表。

how owuld我这样做?

IFS的基本如下所示:

foreach (string file in files) 
    { 
    if 
    { 
    Check <----thats the method 
    } 
    if 
    { 
    Check <----thats the method 
    } 
    if 
    { 
    Check <----thats the method 
    } 
    } 
+0

的LINQ`Except`方法如下就像您的第一个代码片段更快更清晰的版本。我不明白这篇文章的其余部分。 – CodesInChaos 2010-11-23 21:39:01

回答

1

它不是完全清楚究竟是怎么回事 - 但基本上,如果你创建一个空的列表,开始与和将它传递到方法作为参数,该方法可以将新的条目添加到它。

这对于LINQ来说几乎肯定会更简单(可能使用Concat,并且返回一个与给定模式匹配的文件IEnumerable<string>),但是这并不完全明显,您要做什么,这很难建议使用LINQ方法。

0

作为替代乔恩的回答(通过在列表中你的方法),您可能还可以根据需要只产生你的结果....

foreach(string file in files) 
{ 
    if(**condition**) 
    { 
    yield return file; 
    } 
    if(**condition**) 
    { 
    yield return file; 
    } 
    if(**condition**) 
    { 
    yield return file; 
    } 
}