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查询中写入文件'.
[/编辑]
好吧,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)