C# s) }; 列表批次=新列表(); 列表批次=新列表(); foreach(imageGroups中的var组) { batch=batch.Union(group.Files.ToList(); 如果(batch.Count>=batchSize) {
s) }; 列表批次=新列表(); 列表批次=新列表(); foreach(imageGroups中的var组) { batch=batch.Union(group.Files.ToList(); 如果(batch.Count>=batchSize) { 批次。添加(批次); 批次=新列表(); } } }C# s) }; 列表批次=新列表(); 列表批次=新列表(); foreach(imageGroups中的var组) { batch=batch.Union(group.Files.ToList(); 如果(batch.Count>=batchSize) { ,c#,algorithm,lambda,expression,linq-query-syntax,C#,Algorithm,Lambda,Expression,Linq Query Syntax,s) }; 列表批次=新列表(); 列表批次=新列表(); foreach(imageGroups中的var组) { batch=batch.Union(group.Files.ToList(); 如果(batch.Count>=batchSize) { 批次。添加(批次); 批次=新列表(); } } } 您不会总是按顺序获取文件。您可以使用 OrderBy 扩展方法进行排序,或者您可以调用列表。排序。您可以定义您认为“适当”和“有意义”的批处理分配吗?@ ZESPRI
您不会总是按顺序获取文件。您可以使用<代码> OrderBy <代码>扩展方法进行排序,或者您可以调用<代码>列表。排序。您可以定义您认为“适当”和“有意义”的批处理分配吗?@ ZESPRI,请检查两个批次创建示例。第一个是25-25,第二个是25-25-2。在第一个示例中,总共有50个文件。这里,注意ABC和ABCGN(1u不会总是按排序顺序获得文件。您可以使用<代码> OrderBy <代码>扩展方法进行排序,或者您可以调用<代码>列表。排序。您可以定义您认为“适当”和“有意义”的批处理分配吗??@zespri,请检查两个批创建示例。第一个是25-25,第二个是25-25-2。在第一个示例中,共有50个文件。请注意ABC和ABC\n(1)您不会总是按排序顺序获取文件。您可以使用<代码> OrderBy <代码>扩展方法进行排序,或者您可以调用<代码>列表。排序< /代码>。您可以定义您认为“适当”和“有意义”的批处理分配吗??@zespri,请检查两个批创建示例。第一个是25-25,第二个是25-25-2。在第一个示例中,共有50个文件。请注意ABC和ABC\n(1)您不会总是按排序顺序获取文件。您可以使用<代码> OrderBy <代码>扩展方法进行排序,或者您可以调用<代码>列表。排序< /代码>。您可以定义您认为“适当”和“有意义”的批处理分配吗??@zespri,请检查两个批创建示例。第一个是25-25,第二个是25-25-2。在第一个示例中,总共有50个文件。请注意ABC和ABC\n(1
List<string> strIPFiles = Directory.GetFiles(folderPath, "*.*").
Where(file => file.ToLower().EndsWith("tiff") || file.ToLower().EndsWith("tif") || file.ToLower().EndsWith("pdf")).ToList();
int batches = 2, filesPerBatch = 25; //for example
public static void CreateBatch(int batchSize)
{
string sourcePath = @"C:\Users\hari\Desktop\test";
var pdfs = Directory.EnumerateFiles(sourcePath, "*.pdf", SearchOption.TopDirectoryOnly);
var tiffs = Directory.EnumerateFiles(sourcePath, "*.tiff", SearchOption.TopDirectoryOnly);
var images = pdfs.Union(tiffs);
var imageGroups = from image in images
group image by Regex.Replace(Path.GetFileNameWithoutExtension(image), @"_\d+$", "") into g
select new { GroupName = g.Key, Files = g.OrderBy(s => s) };
List<List<string>> batches = new List<List<string>>();
List<string> batch = new List<string>();
foreach (var group in imageGroups)
{
batch = batch.Union(group.Files).ToList<string>();
if (batch.Count >= batchSize)
{
batches.Add(batch);
batch = new List<string>();
}
}
}