954,514 Members — Technology Publication meets Social Media
Username:
Password:
Lost login information?
Have something to say? Contribute New Article Reply to this Article

Using a String[] in LINQ where clause

Hi All,

I am trying to use to linq to retrieve some data, and creating my queries dynamically with where clauses added to an IQueryable object.

The problem I am running into is filtering for days of the week. In the table, I have a datetime of a call. I want to be able to pick certain days of the week to filter for. I have those days of the week stored as strings in a string array. I was then trying to do a contains statement to see if the day of the week, based on the date time is one of those in the array.

My code is below

matches = matches.Where(CallRequest => CallRequest.dTimestamp != null && f.PrintDays.Contains(Convert.ToDateTime(CallRequest.dTimestamp).DayOfWeek.ToString()));


f.PrintDays is the string[], with the week days stored as "Sunday","Monday" etc.

I use the Convert statement, since it is a ?DateTime in the table, but by that point I have already verified that it is not null.

If anyone has any ideas, or maybe this isn't even possible, let me know.

Thanks!

Mark

croker10
Junior Poster in Training
67 posts since Jun 2010
Reputation Points: 10
Solved Threads: 6
 

So what is the issue you are having? I created a class with a nullable DateTime, made an array of that class. Then I created an array of Strings with days of the week in them and did the code you have an had no issues.

Momerath
Nearly a Senior Poster
3,386 posts since Aug 2010
Reputation Points: 1,232
Solved Threads: 558
 

Hmm, strange. The filter never seems to be applied to my data. I will have to look further into it. Thanks for taking the time. I know at least that it is possible. Not sure what is happening but I know at least that its not the String[].contains. Thanks again.

croker10
Junior Poster in Training
67 posts since Jun 2010
Reputation Points: 10
Solved Threads: 6
 

can u suggest me how to integrate linq in my website

rajees
Newbie Poster
3 posts since Jul 2010
Reputation Points: 10
Solved Threads: 0
 

Even though the thread is old...

using System;
using System.Linq;

namespace Dani_312188
{
   class CDani_312188
   {
      static void Main(string[] args)
      {
         string[] arr_strDays = {"Tuesday", "Thursday", "Saturday" };

         DateTime? dt1 = null;
         
         int intRnd = (new Random(DateTime.Now.Second)).Next();

         if (0.Equals(intRnd % 2)) dt1 = DateTime.Parse("18-June-2011");

         bool blnIsMatch =
         (
            null != dt1 //...must check for null
            && //...must cast to a regular DateTime
            arr_strDays.Contains(((DateTime)dt1).DayOfWeek.ToString())
         );

         if (blnIsMatch)
         {
            Console.WriteLine(((DateTime)dt1).DayOfWeek); // Prints "Saturday"
         }
      }
   }
}
thines01
Postaholic
Team Colleague
2,424 posts since Oct 2009
Reputation Points: 445
Solved Threads: 402
 

This question has already been solved

Post: Markdown Syntax: Formatting Help
You
View similar articles that have also been tagged: