从逗号分隔的字符串中查找特定字符串的最简单方法

时间:2014-02-11 06:58:42

标签: c# csv

我必须从逗号分隔的字符串中获取不同的值。输入字符串可以包含重复的值。这是自动完成功能。 例如:

我有一个字符串: shop,dell,image,just,just do,file,just,do,shop .... 我的要求是当我传递' jus '时,输出字符串应该是:“只是,只需要”。

2 个答案:

答案 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();

逐行解释此代码:

  1. 创建名为csv的变量,其中包含文本
  2. 使用Split函数
  3. 将字符串拆分为多个字符串
  4. 使用LINQ查询仅获取所需的文本,即:选择以“jus”开头的字符串,在这种情况下。
  5. 使用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