C# 不要在包含相同文本的列表中添加重复项
C# Do not add duplicated item in list that has same containing text
您好,我制作了一个包含 2 个列表的程序,(urls、filteredUrls) url 有重复的内容。过滤后的网址
假设有 urls 的项目没有重复
重复的内容示例:
https://mysql-code.com/app.php?=
https://mysql-code.com/app.asp?=1
https://www.page.com/app=123
http://www.page.com/app=123+2
如您所见,mysql-代码和页面是重复的,我为网址做了不同的列表,但是它只删除字面相同的项目,我只想删除仅包含相同文本的项目完全包含
我的代码
filteredUrls = urls.Distinct().ToList();
File.WriteAllLines(resFolder + @"\urls.txt", filteredUrls);
文件结果输出相同的文本包含但结尾或开头不同
要解析 URL 并访问其组件,请使用 Uri Class。
下面的代码比较基于主机的 url:
var urls = new[] {
"https://mysql-code.com/app.php?=",
"https://mysql-code.com/app.asp?=1",
"https://www.page.com/app=123",
"http://www.page.com/app=123+2"
};
var result = urls
.Select(url => new Uri(url))
.ToLookup(uri => uri.Host, uri => uri)
.Select(v => v.First());
foreach (var uri in result)
{
Console.WriteLine(uri);
}
/*
https://mysql-code.com/app.php?=
https://www.page.com/app=123
*/
您好,我制作了一个包含 2 个列表的程序,(urls、filteredUrls) url 有重复的内容。过滤后的网址 假设有 urls 的项目没有重复 重复的内容示例:
https://mysql-code.com/app.php?=
https://mysql-code.com/app.asp?=1
https://www.page.com/app=123
http://www.page.com/app=123+2
如您所见,mysql-代码和页面是重复的,我为网址做了不同的列表,但是它只删除字面相同的项目,我只想删除仅包含相同文本的项目完全包含
我的代码
filteredUrls = urls.Distinct().ToList();
File.WriteAllLines(resFolder + @"\urls.txt", filteredUrls);
文件结果输出相同的文本包含但结尾或开头不同
要解析 URL 并访问其组件,请使用 Uri Class。
下面的代码比较基于主机的 url:
var urls = new[] {
"https://mysql-code.com/app.php?=",
"https://mysql-code.com/app.asp?=1",
"https://www.page.com/app=123",
"http://www.page.com/app=123+2"
};
var result = urls
.Select(url => new Uri(url))
.ToLookup(uri => uri.Host, uri => uri)
.Select(v => v.First());
foreach (var uri in result)
{
Console.WriteLine(uri);
}
/*
https://mysql-code.com/app.php?=
https://www.page.com/app=123
*/