任何人都可以簡化這個非常有效地工作....簡化linq查詢?
FileCompareLength myFileCompare1 = new FileCompareLength();
var queryList1Only3 = (from file in list1 select file).Except(list2, myFileCompare1);
var queryList1Only33 = (from file in list2 select file).Except(list1, myFileCompare1);
var difference1 = queryList1Only3.ToHashSet();
difference1.SymmetricExceptWith(queryList1Only33);
var query4 = difference1.AsEnumerable().OrderBy(x => x.Name);
if (query4.Count() > 0) {
dest.WriteLine("Discrepancies in File Date:");
foreach (var v in query4) {
dest.WriteLine(v.Lengh+ " " + v.FullName);
}
}
和
public class FileCompareLength : System.Collections.Generic.IEqualityComparer<System.IO.FileInfo> {
public FileCompareLength() { }
public bool Equals(System.IO.FileInfo f1, System.IO.FileInfo f2) {
return (f1.Length == f2.Length);
}
public int GetHashCode(System.IO.FileInfo fi) {
return fi.Length.GetHashCode();
}
}
任何建議?
我建議你先從一些更文明縮進。以目前的形式來看是很痛苦的。 – 2010-12-15 04:36:02
你應該能夠在不瞭解linq的情況下編寫可讀代碼,特別是因爲我剛剛做過。 – 2010-12-15 04:44:29
@bemace:謝謝....... – bala3569 2010-12-15 04:46:14