0

SQL LIKEの場合とほとんど同じように、特定の文字列をワイルドカードと一致させる必要があります。このトピックについても同様の質問がありますが、私はUnity3Dを使用しており、Mono.NETライブラリにはLINQがありますが、SqlMethodsはありません。

すべてのワイルドカード文字をエミュレートする方法が必要になります。したがって'*MSB'、EastMSB、WestMSBと一致できる必要がありDB0?-??、「DB01-11」、「DB01-07」などと一致する必要があります。

4

2 に答える 2

3

Linqは、System.StringクラスのメソッドContainsを適切なSQLクエリに拡張できるため、次のクエリを実行できます。

var data = dataContext.Clients.Where(c => c.Name.Contains("John"));

次のようなものに「変換」されます。

DECLARE @p0 VarChar(1000) = '%John%'
SELECT [t0].[Id], [t0].[Name]
FROM [Clients] as [t0]
WHERE [t0].[Name] LIKE @p0

少なくとも、これは私がLinqPadを使用して得ているものです。

于 2012-10-09T11:48:30.553 に答える
-1

あなたはこのようなことをすることができます。構文は正確に正しくないかもしれません、それは私の頭のてっぺんから外れています、しかしそれはあなたを近づけるでしょう。

List<string> list = new List<string>();
list.Add("#1");
list.Add("#2");
list.Add("#3");

RegularExpressions.Regex regEx = new System.Text.RegularExpressions.Regex("#1");

var qry = list.Where<string>(item => regEx.IsMatch(item)).ToList<string>();

もちろん、Regex()コンストラクターで渡す式は、検索を満たすために必要なものであれば何でもかまいません。

于 2012-10-09T11:34:31.977 に答える