如何根据规则获取我想要的数据

时间:2019-07-19 03:56:38

标签: c# algorithm

我有一个如下的配置表,有些用户具有不同的属性。我需要获取基于用户属性的配置数据。

我不知道如何实现它,不知道。

configuration data from db table

初始代码:

slug = self.kwargs.get('slug')
# assuming that you've a field called slug in Category model
Courses.objects.filter(category__slug=slug) 

如果GoodCode =“ A”和用户(UserType =“ personal”,Country =“ US”,State =“ NewYork”,City =“ Albany”),我希望得到ConfigCode =“ 36”; < / p>

如果GoodCode =“ A”和用户(UserType =“ personal”,Country =“ China”,State =“ Guangdong”,City =“”),我希望得到ConfigCode =“ 39”;

如果GoodCode =“ A”和用户(UserType =“ personal”,Country =“”,State =“”,City =“”),我希望得到ConfigCode =“ 33”;

如果GoodCode =“”和用户(UserType =“ personal”,Country =“”,State =“”,City =“”),我希望得到ConfigCode =“ 9”;

如果GoodCode =“ B”和用户(UserType =“”,Country =“”,州=“”,城市=“”),我希望获得ConfigCode =“ 1”;

1 个答案:

答案 0 :(得分:1)

最简单的方法就是开始工作。在这种情况下,假设有人给您以下输入:

{ GoodCode="A", UserType="organization", Country="China", State="Guangdong", City="", Price=47 }

因此,您使用该数据创建了一个新的ConfigEntity

var searchFor = new ConfigEntity(
    ConfigCode="??", GoodCode="A", UserType="organization",
    Country="China", State="Guangdong", City="", Price=47);

然后您依次搜索列表:

ConfigEntity foundItem = null;
foreach (var f in configList)
{
    if (f.GoodCode == searchFor.GoodCode &&
        f.UserType == searchFor.UserType &&
        f.Country == searchFor.Country &&
        f.State == searchFor.State &&
        f.City == searchFor.City)
    {
        foundItem = f;
        break;
    }
}
if (foundItem != null)
{
    // found the item. Do something with it.
}
else
{
    // didn't find the item. Handle the error.
}

这不是最好或最有效的处理方法,但是它可以工作。这是一个可以改进的起点。