我有一个需要通读文本文件的linq语句。它需要使用网址并将其剥离以获取域名。然后,我想要获取唯一的域并将它们写回文件。
这是我到目前为止所拥有的:
var urls = File.ReadAllLines(badLinks)
.Where(x => x.IsNotNullOrEmpty())
.Select(x => ManipulateUrl(x))
.Distinct()
.ToList();
问题是,我注意到Distinct()函数只包含一个域,如果在更改后我真正重新评估列表并创建一个唯一列表时,操作条目是Distinct enties(域名)。
任何帮助表示感谢。
*更新*
对不起,伙计们,在分解列表后发现源文件存在问题。很难看到100k的记录。
答案 0 :(得分:2)
你的代码看起来肯定是正确的,唯一让人想到的是ManipulateURL是否正在抛弃它。
您是否尝试将代码拆分为两个单独的语句,即:
var urls = File.ReadAllLines(badLinks)
.Where(x => x.IsNotNullOrEmpty())
.Select(x => ManipulateUrl(x));
var distinctURLS = urls.Distinct().ToList();
至少以这种方式,您可以单步执行代码并验证urls
是否正如您所期望的那样填充。