加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

c# – 根据字符串选择多个属性的值

发布时间:2020-12-16 01:52:48 所属栏目:百科 来源:网络整理
导读:我正在构建一个自动化工作流系统,必须根据要读取的文件名设置4个字符串值.我有一个正常运行的switch语句,但正如您在示例中看到的,我在不同的文件名之间有很多共享值.我正在寻找一种简化此代码的方法,因为很快我将拥有多达40个不同的文件名. 必须为每个文件分
我正在构建一个自动化工作流系统,必须根据要读取的文件名设置4个字符串值.我有一个正常运行的switch语句,但正如您在示例中看到的,我在不同的文件名之间有很多共享值.我正在寻找一种简化此代码的方法,因为很快我将拥有多达40个不同的文件名.

必须为每个文件分配以下属性:AccountName,CampaignName,DocumentName和DestinationName.帐户和广告系列经常在类似文件之间共享,但文档几乎总是唯一的.请参阅下面的示例.

case "Cow":
    accountName = "Farm Animals";
    campaignName = "Quadrupeds";
    documentName = "Milk Givers";
    destinationName = "Milking Line";
    break;
case "Chicken":
    accountName = "Farm Animals";
    campaignName = "Bipeds";
    documentName = "Egg Layers";
    destinationName = "Coupe";
    break;
case "Turkey":
    accountName = "Farm Animals";
    campaignName = "Bipeds";
    documentName = "Dinner";
    destinationName = "My Table";
    break;
case "Dog":
    accountName = "Farm Animals";
    campaignName = "Quadrupeds";
    documentName = "Best Friend";
    destinationName = "Front Porch";
    break;
case "Pig":
    accountName = "Farm Animals";
    campaignName = "Quadrupeds";
    documentName = "Bacon";
    destinationName = "My Plate";
    break;

我不知道字典是否是我正在寻找的,或者我是否构建了一个自定义类,我可以使用LINQ选择值,这就是为什么我在这里.

我希望减少重复值以使其更易于管理.类似于微型关系数据库的东西,用于存放不同的值以及属于它们的文档.

我的问题是:如果没有switch语句,有没有更好的方法来解决这个问题?根据我的需要,我的问题有更好的名称吗?

解决方法

好的,所以每个参数都是与每只动物相关的一对多关系.我的解决方案是为每个参数创建字典,其类型为Dictionary< string,List< string>>,如下所示:

var accountNames = new Dictionary<string,List<string>>
    {
        {"Farm Animals",new List<string> {"Cow","Chicken","Turkey","Dog","Pig"}}
    };

然后你将以类似于此的方式使用它(此示例使用匿名类型).您可能希望为值检索创建一个扩展方法来清理代码并使其不区分大小写.

foreach(var animal in animals)
{
    var item = new
        {
            AccountName = accountNames.First(x => x.Value.Contains(animal)).Key
        };
}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读