我必须从逗号分隔的字符串中获取不同的值。输入字符串可以包含重复的值。这是自动完成功能。 例如:
我有一个字符串: shop,dell,image,just,just do,file,just,do,shop .... 我的要求是当我传递' jus '时,输出字符串应该是:“只是,只需要”。
答案 0 :(得分:8)
var csv = "shop,dell,image,just,just do,file,just,do,shop";
var arr = csv.Split(',');
var suggested = from word in arr
where word.StartsWith("jus")
select word;
suggested = suggested.Distinct();
逐行解释此代码:
csv
的变量,其中包含文本Split
函数Distinct
方法从列表中删除重复的条目。答案 1 :(得分:4)
您需要用逗号分割字符串,然后搜索结果字符串。
string csvList = "shop,dell,image,just,just do,file,just,do,shop";
string search = "jus"; // your search string goes here
var splitResults = csvList.Split(',').ToList();
// improvement: cache SplitResults once, and retrieve it from cache on every search
var searchResults = splitResults.Where(x => x.StartsWith(search)).Distinct();
您可以更改最后一行以使用Contains
在字词内搜索,或使用StartsWith(search, StringComparison.OrdinalIgnoreCase)
忽略搜索的情况。
如果输入非常大,您应该缓存List<string> splitResults
,以便准备好搜索项目。如果您的音量很高,那么您肯定不希望每次搜索都会分割csvList
。