- using System; 
- using System.Linq; 
- using System.Collections.Generic; 
- using System.IO; 
-   
- public class Test 
- { 
-         public static string AddIncrementFileNameSuffix(string path, IList<string> paths, string separator) 
-         { 
-             int num = 0; 
-             string[] tokens = path.Split(new[] { separator }, StringSplitOptions.None); 
-             string strNum = tokens.Last(); 
-             int.TryParse(strNum, out num); 
-             string fileName = path; 
-             string dir = Path.GetDirectoryName(path); 
-             string ext = Path.GetExtension(path); 
-   
-             var dups = paths.Where(n => n.Equals(fileName, StringComparison.OrdinalIgnoreCase)); 
-             while (dups.Any()) 
-             { 
-                 fileName = Path.Combine(dir, tokens.First() + separator + ++num + ext); 
-             } 
-   
-             paths.Add(fileName); 
-             return fileName; 
-         } 
-   
- 	public static void Main() 
- 	{ 
-         var SourceFiles = new List<String>() { @"C:\Temp\test_1", @"C:\Temp\test_2" }; 
-         var lsNameList = new List<String>() { @"C:\Temp\test_1", @"C:\Temp\test_2", @"C:\Temp\test_3" }; 
-   
-   
-         IEnumerable<String> newPaths = SourceFiles 
-                 .Select(fn => AddIncrementFileNameSuffix(fn, lsNameList,"_")); 
-   
-         Console.Write(string.Join(Environment.NewLine, newPaths.ToArray())); 
- 	} 
- } 
				dXNpbmcgU3lzdGVtOwp1c2luZyBTeXN0ZW0uTGlucTsKdXNpbmcgU3lzdGVtLkNvbGxlY3Rpb25zLkdlbmVyaWM7CnVzaW5nIFN5c3RlbS5JTzsKCnB1YmxpYyBjbGFzcyBUZXN0CnsKICAgICAgICBwdWJsaWMgc3RhdGljIHN0cmluZyBBZGRJbmNyZW1lbnRGaWxlTmFtZVN1ZmZpeChzdHJpbmcgcGF0aCwgSUxpc3Q8c3RyaW5nPiBwYXRocywgc3RyaW5nIHNlcGFyYXRvcikKICAgICAgICB7CiAgICAgICAgICAgIGludCBudW0gPSAwOwogICAgICAgICAgICBzdHJpbmdbXSB0b2tlbnMgPSBwYXRoLlNwbGl0KG5ld1tdIHsgc2VwYXJhdG9yIH0sIFN0cmluZ1NwbGl0T3B0aW9ucy5Ob25lKTsKICAgICAgICAgICAgc3RyaW5nIHN0ck51bSA9IHRva2Vucy5MYXN0KCk7CiAgICAgICAgICAgIGludC5UcnlQYXJzZShzdHJOdW0sIG91dCBudW0pOwogICAgICAgICAgICBzdHJpbmcgZmlsZU5hbWUgPSBwYXRoOwogICAgICAgICAgICBzdHJpbmcgZGlyID0gUGF0aC5HZXREaXJlY3RvcnlOYW1lKHBhdGgpOwogICAgICAgICAgICBzdHJpbmcgZXh0ID0gUGF0aC5HZXRFeHRlbnNpb24ocGF0aCk7CgogICAgICAgICAgICB2YXIgZHVwcyA9IHBhdGhzLldoZXJlKG4gPT4gbi5FcXVhbHMoZmlsZU5hbWUsIFN0cmluZ0NvbXBhcmlzb24uT3JkaW5hbElnbm9yZUNhc2UpKTsKICAgICAgICAgICAgd2hpbGUgKGR1cHMuQW55KCkpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIGZpbGVOYW1lID0gUGF0aC5Db21iaW5lKGRpciwgdG9rZW5zLkZpcnN0KCkgKyBzZXBhcmF0b3IgKyArK251bSArIGV4dCk7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIHBhdGhzLkFkZChmaWxlTmFtZSk7CiAgICAgICAgICAgIHJldHVybiBmaWxlTmFtZTsKICAgICAgICB9CiAgICAKCXB1YmxpYyBzdGF0aWMgdm9pZCBNYWluKCkKCXsKICAgICAgICB2YXIgU291cmNlRmlsZXMgPSBuZXcgTGlzdDxTdHJpbmc+KCkgeyBAIkM6XFRlbXBcdGVzdF8xIiwgQCJDOlxUZW1wXHRlc3RfMiIgfTsKICAgICAgICB2YXIgbHNOYW1lTGlzdCA9IG5ldyBMaXN0PFN0cmluZz4oKSB7IEAiQzpcVGVtcFx0ZXN0XzEiLCBAIkM6XFRlbXBcdGVzdF8yIiwgQCJDOlxUZW1wXHRlc3RfMyIgfTsKCgogICAgICAgIElFbnVtZXJhYmxlPFN0cmluZz4gbmV3UGF0aHMgPSBTb3VyY2VGaWxlcwogICAgICAgICAgICAgICAgLlNlbGVjdChmbiA9PiBBZGRJbmNyZW1lbnRGaWxlTmFtZVN1ZmZpeChmbiwgbHNOYW1lTGlzdCwiXyIpKTsKCiAgICAgICAgQ29uc29sZS5Xcml0ZShzdHJpbmcuSm9pbihFbnZpcm9ubWVudC5OZXdMaW5lLCBuZXdQYXRocy5Ub0FycmF5KCkpKTsKCX0KfQ==