验证特定列的重复值

时间:2018-03-14 05:48:21

标签: c#

我正在创建Zip文件,如:

var consultaGerente = _contexto.PDFGenerados.Where(x => x.nGerente == Gerente).ToList();
using (ZipFile fileZip = new ZipFile())
{
    foreach (var i in consultaGerente)
    {
        var fileRoute = carpetaCorrecta + i.vRutaArchivo.Replace("/", "\\");
        zip.AddFile(fileRoute, "PDF");
    }
}

问题是当重复i.vRutaArchivo时会抛出错误,因为我们无法将两个具有相同名称的文件添加到zip中。如何验证i.vRutaArchivo永远不会重复?

1 个答案:

答案 0 :(得分:1)

由于您只关注文件名,因此您可以使用LINQ提取更正的(替换)文件名并获取不同的列表。

var consultaGerente = _contexto.PDFGenerados
    .Where(x => x.nGerente == Gerente)
    .Select(i => i.vRutaArchivo.Replace("/", "\\"))
    .Distinct()
    .ToList();

using (ZipFile fileZip = new ZipFile())
{
    foreach (var i in consultaGerente)
    {
        var fileRoute = carpetaCorrecta + i;
        zip.AddFile(fileRoute, "PDF");
    }
}