Выберите новый с оператором if внутри - PullRequest
0 голосов
/ 28 ноября 2018

У меня есть этот фрагмент кода, который выбирает новую информацию из базы данных в моем проекте C #, но я хочу, чтобы он делал это только в том случае, если имя не является определенным именем, поэтому вот код

public List<Info> GetInfo(int id)
{
    var cacheKey = "allinfo-" + id;
    var info = SoftCache.GetData<List<info>>(cacheKey);
    if (info != null)
        return info;

    using (var db = DB.InfoModel)
    {
        info = (from j in db.info_list()

                select new Info
                {
                    InfoName = j.info_name,
                    InfoId = j.info_id,
                    InfoValue = j.info_value,
                }).ToList();
    }

    SoftCache.Add(cacheKey, info, new TimeSpan(0, 0, 5), new TimeSpan(0, 1, 0));
    return info;
}

То, что я хочу, это что-то вроде

if(j.info_name != "BadName"){
    select new Info
    {
        InfoName = j.info_name,
        InfoId = j.info_id,
        InfoValue = j.info_value,
    }).ToList();
}

Ответы [ 3 ]

0 голосов
/ 28 ноября 2018

Вы можете использовать , где , чтобы отфильтровать информацию следующим образом: -

info = (from j in db.info_list()
where j.info_name != "BadName"
select new Info
{
    InfoName = j.info_name,
    InfoId = j.info_id,
    InfoValue = j.info_value,
}).ToList();
0 голосов
/ 28 ноября 2018

Или используя Where метод расширения

var goodNames = 
    db.info_list().Where(info => info.info_name != "Badname")
                  .Select(info => new Info
                  {
                      InfoName = info.info_name,
                      InfoId = info.info_id,
                      InfoValue = info.info_value,
                  })
                  .ToList();
0 голосов
/ 28 ноября 2018

Вам необходимо добавить оператор где здесь:

info = (from j in db.info_list()
where j.info_name != "BadName"
select new Info
{
    InfoName = j.info_name,
    InfoId = j.info_id,
    InfoValue = j.info_value,
}).ToList();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...