gpt4 book ai didi

c# - 如何检查一个字符串是否匹配多个字符串并根据匹配返回值

转载 作者:行者123 更新时间:2023-11-30 15:53:47 25 4
gpt4 key购买 nike

如果标题没有多大意义,我深表歉意,英语不是我的母语。

我想做的是:1. 我有一个字符串列表2. 我想根据另一个字符串列表检查每个字符串3. 根据它们包含的字符串不同,输出会有所不同

在代码中,它看起来像这样:

public static Hashtable Matches = new Hashtable
{
{"first_match", "One"},
{"second_match", "Two"},
{"third_match", "Three"},
{"fourth_match", "Four!"},
{"fifth_match", "Five"}
};

现在,我有一个这样的字符串列表:

001_first_match
010_second_match
011_third_match

而且我想检查列表中的每个字符串是否存在于哈希表中(或者可能是适合这种情况的其他数据类型,感谢建议)并基于此获取键的值。

例如:001_first_match 在哈希表中,first_match 键。如果找到,那么我想获取它的 One 值并使用它。

我不能使用 ContainsKey,因为字符串列表与键不是 100% 准确。 key 包含在字符串中,但字符串中有额外的数据。

我希望我想做的事情不会太困惑。

最佳答案

尝试以下 linq:

using System;
using System.Collections;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Xml;
using System.Xml.Serialization;
using System.IO;


namespace ConsoleApplication58
{
class Program
{
const string FILENAME = @"c:\temp\test.xml";
static void Main(string[] args)
{
string[] inputs = { "001_first_match", "010_second_match", "011_third_match" };

foreach (string input in inputs)
{
var results = Matches.Keys.Cast<string>().Where(x => input.Contains(x)).FirstOrDefault();
Console.WriteLine("Input '{0}' found in HashTable : {1}", input, (results == null) ? "False" : "True, key = '" + results + "', Value = '" + Matches[results] + "'");
}
Console.ReadLine();


}
public static Hashtable Matches = new Hashtable
{
{"first_match", "One"},
{"second_match", "Two"},
{"third_match", "Three"},
{"fourth_match", "Four!"},
{"fifth_match", "Five"}
};
}

}

关于c# - 如何检查一个字符串是否匹配多个字符串并根据匹配返回值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51784641/

25 4 0
文章推荐: c# - Linq on List