如何在列表c#的位置使用多条件

时间:2017-05-10 18:38:51

标签: c#

请检查我的代码。 我想按日期过滤列表,但此代码不起作用。

List<QueryRow> queryResult = App.StorageRepository.Query("appointments_appointment");
queryResult.Where(item => 
    {
        var startDate = Convert.ToDateTime(item.Document.GetProperty("startDate"));
        if (startDate == date)
            return true;
        else
            return false;
    });

1 个答案:

答案 0 :(得分:0)

我现在不完全是您的代码所做的事情,但我建议您尝试查看集合中是否有与给定日期匹配的日期(请参阅示例2)。

或者,如果您尝试获取与给定日期匹配的元素,请使用示例1

      // example date
       DateTime date = new DateTime(2005,4,10);
      // data collection
      List<QueryRow> queryResult = App.StorageRepository.Query("appointments_appointment");

(示例1 Where())

使用where检查QueryRow的日期等于给定日期。如果确实返回了QueryRow。

       IEnumerable<QueryRow> results = queryResult.Where(item => Convert.ToDateTime(item.Document.GetProperty("startDate")) == date)

       // loop the result items that matched the search result
       foreach (QueryRow result in results)
       {
           // do something with the row
       }

(示例2任何())

检查集合中是否存在给定日期。通过使用any,它将检查是否有任何匹配项目的日期等于给定日期。如果打开,则返回true,否则为false。

  bool dateExists = queryResult.Any(item => Convert.ToDateTime(item.Document.GetProperty("startDate")) == date);