猿问

相关项目清单

我有一个格式类似于以下内容的文本文件:


#

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?


使用其他变量类型(例如字典)会更好吗?


摇曳的蔷薇
浏览 127回答 2
2回答
随时随地看视频慕课网APP
我要回答