csharp > 部分一致検索 > Dictionary <string, string>() > FirstOrDefault 使用
関連 http://qiita.com/7of9/items/50557697949d3ddb30e7
上記のリンクにてDictionary <string, List<string>>()
の検索を実施した。
しかしながら、自分が使いそうなのはDictionary <string, string>()
の検索かもしれない。
実装してみた。
code v0.1
using System;
using System.Collections.Generic;
using System.Linq;
public class Program
{
public static string getElementWithLikeSearch(ref Dictionary<string,string>myDic, string searchKey)
{
var list = from name in myDic
where name.Key.Contains(searchKey)
select name;
if (list.Count() == 0) {
return "";
}
foreach(var element in list) {
return element.Value;
}
return "";
}
public static void Main()
{
Dictionary <string, string> myDic = new Dictionary<string, string>();
myDic.Add("HC-SR04", "Ultrasonic sensor...");
myDic.Add("MAX232", "The Max 220-Max249...");
myDic.Add("MAX44242", "The MAX44242 provides...");
string val;
val = getElementWithLikeSearch(ref myDic, "MAX232");
Console.WriteLine(":" + val);
val = getElementWithLikeSearch(ref myDic, "MAX44242");
Console.WriteLine(":" + val);
val = getElementWithLikeSearch(ref myDic, "MAX");
Console.WriteLine(":" + val);
}
}
結果
:The Max 220-Max249...
:The MAX44242 provides...
:The Max 220-Max249...
備考
複数候補が見つかった時に1つ目を返す方法として以下としている。
foreach(var element in list) {
return element.Value;
}
インデックス0のValueを返すようにする方法は未消化なのでforeachを使ってごまかしている。
改善code
@KeisukeKudo さんのコメントを参照ください。
Author And Source
この問題について(csharp > 部分一致検索 > Dictionary <string, string>() > FirstOrDefault 使用), 我々は、より多くの情報をここで見つけました https://qiita.com/7of9/items/eaf2fe5c6f7d0ad2fa3a著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .