我有一个格式类似于以下内容的文本文件:
#
example1.com;example2.com;example3.com
example4.net;example6.org
example7.uk;example8.io;ab123example4.net
#
每行定义一个公司拥有的域。每行可以有2个或更多域。
不幸的是,我无法修改文件的格式。
我对c#不太熟悉(我通常在Linux / Unix上使用bash / sh,我可能会默认使用grep),并且正在尝试扩展一些现有的c#软件以添加检查两个域是否由同一公司拥有的功能。
目前,我正在读取文件,如下所示:
private List<string> _CompanyOwnedDomains;
private String CompanyOwnedDomainsFileName = Environment.GetEnvironmentVariable(
"DomainChecker",
EnvironmentVariableTarget.Machine) +
@"Path\To\CompanyOwnedDomains.config";
// Various error checking happens here
_CompanyOwnedDomains = File
.ReadAllLines(CompanyOwnedDomainsFileName)
.Where(line => !String.IsNullOrEmpty(line))
.Where(line => !line.StartsWith("#"))
.Select(line => line.ToLower())
.ToList();
到目前为止,当我进行检查时,我对如何与以上内容进行交互有些困惑。
为了论证,可以说我有两个变量,DomainA和DomainB。我想检查两个域是否都属于同一公司。
我可以执行以下操作,但这似乎效率很低:
var Match = _CompanyOwnedDomains
.FirstOfDefault(DomainsList => DomainsList.Contains(DomainA.ToString());
if(Match != null) && Match.Contains(DomainB.ToString())
{
// Do stuff
}
有没有办法检查两个值是否都存在于同一列表项中?
对于“ example4.net”或类似查询,Contains方法是否会返回ab123example4.net?
使用其他变量类型(例如字典)会更好吗?
相关分类