C#写入linq查询中的文件

Yus*_*tme 3 c# linq compare image

如何写入linq查询中的文件?或者调用写入文件的自定义函数?我正在比较图片的相似性.并希望检查已在日志文件中相互比较的文件.因为有些图片标记为相似但不是.

提前致谢!

[编辑]

linq查询只是:

IEnumerable<PicInfo> t = from f in lista
from q in listb
where (((64 - BitCount(f.visualCharHash ^ q.visualCharHash)) * 100.0) / 64.0 == 100)
Run Code Online (Sandbox Code Playgroud)

这里没有写文件的文字.简单地说,因为我不知道如何这样做.和谷歌没有找到任何显示如何做到这一点的结果.

但它确实显示'写linq查询'

没有结果'在linq查询中写入文件'.

[/编辑]

spe*_*der 5

好吧,LINQ仅用于查询(即没有副作用的代码),但是,对于LINQ to Objects,如果需要,很容易破坏它来编写日志...例如:

myEnumerable.Select( m => m.SomeProp )
Run Code Online (Sandbox Code Playgroud)

可以改为:

myEnumerable.Select( m => {
    myLogger.Log(m.SomeProp);
    return m.SomeProp;
})
Run Code Online (Sandbox Code Playgroud)

除了调试之外,我不建议将其用于任何其他目的.

因此,要对您的查询执行此操作,您需要转换为方法链:

lista
    .SelectMany(i => listb, (f, q) => new {f, q})
    .Where(x => {
        var v = (((64 - BitCount(x.f.visualCharHash ^ x.q.visualCharHash)) 
                    * 100.0) 
                / 64.0;
        //logging?
        return v == 100;
    })
Run Code Online (Sandbox Code Playgroud)