2 votes

Requête LINQ avec plusieurs clauses StartsWith ?

J'ai une requête LINQ qui fonctionne comme elle est supposée le faire comme suit,

var query = DataContext.TenantDataServerTables.Where(p => 
             p.Nursing_Home_Section == homeSection &&
             p.Tenant_Kana_Last.ToString().StartsWith(@"ア") ||
             p.Tenant_Kana_Last.ToString().StartsWith(@"イ") ||
             p.Tenant_Kana_Last.ToString().StartsWith(@"ウ") ||
             p.Tenant_Kana_Last.ToString().StartsWith(@"エ") ||
             p.Tenant_Kana_Last.ToString().StartsWith(@"オ"));
        }

Y a-t-il un moyen de faire quelque chose comme ça pour rationaliser la requête ?

char[] array = new char[] { 'ア', 'イ', 'ウ', 'エ', 'オ' };

var query = DataContext.TenantDataServerTables.Where(p => 
                 p.Nursing_Home_Section == homeSection &&
                 p.Tenant_Kana_Last.ToString().StartsWith(array));

Ce n'est qu'un exemple, car il y a beaucoup d'autres caractères que je dois vérifier. StartsWith sur la requête LINQ.

1voto

Duncan Carr Points 210
using System;
using System.Collections.Generic;
using System.Linq;

namespace ConsoleApp
{
    class Program
    {
        static void Main()
        {
            var searchList = new List<string> { "ア", "イ", "ウ", "エ", "オ" };

            var fullNameList = new List<string>
            {
                "Alpha",
                "アBravo",
                "Charlie",
                "イDelta",
                "Echo",
                "エFoxtrot",
                "Golf"
            };

            var finds = from name in fullNameList
                        from firstName in searchList
                        where name.StartsWith(firstName)
                        select name;

            foreach (string str in finds)
                Console.WriteLine(str);

            Console.ReadKey();
        }
    }
}

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X