我的列表包含:{"something1","something2","somefoo","bar"}
我创建了一个foreach
循环来检查每个字符串。
string input = "thing";
foreach(string word in list) //list = {"something1","something2","somefoo","bar"}
{
if (word.StartContains(input))
return;
}
因为你可以看到我想检查我的input
字符串是否包含在列表中的字符串中。
我想要的结果是我不希望在此代码中返回。
StartContains
必须做什么?
此方法需要检查第一个字母是否等于输入,
不像Contains()
那样完整的单词。
我根本不知道如何创建这个......
谢谢,
答案 0 :(得分:3)
您可以使用String.StartsWith
确定此字符串实例的开头是否与 指定的字符串。
答案 1 :(得分:1)
使用
String.StartsWith("string")
在你的例子中。
string input = "thing";
foreach(string word in list) //list = {"something1","something2","somefoo","bar"}
{
if (word.StartsWith(input))
{
// TODO: Do Something with the word here.
}
}
这是一个展示其工作原理的运行示例。 https://dotnetfiddle.net/mNVK1u
答案 2 :(得分:1)
以下内容将为您创建与您的输入相匹配的所有条目的列表。
var input = "som";
var strings = new List<string>()
{"something1","something2","somefoo","bar"};
var stringsThatMatch = strings.Where(item => item.StartsWith(input)).ToList();
答案 3 :(得分:0)
检查
var list = new List<string>();
list.Add("something1");
list.Add("domething1");
list.Add("romething1");
list.Add("yomething1");
string input = "thing";
char[] inputchars = input.ToCharArray();
foreach (string word in list) //list = {"something1","something2","somefoo","bar"}
{
char[] characters = word.ToCharArray();
if (inputchars[0] == characters[0])
list.Remove(word);
}
return list;
答案 4 :(得分:0)
正如其他人已经指出的那样,String.StartsWith()正是您所寻找的。 p>
但你也可以为那个
创建自己的ExtensionMethodpublic static bool StartsWith(this string baseString, string stringToFind, int lettersToMatch)
{
for(int i = 0; i < lettersToMatch; i++)
{
if(baseString[i] != stringToFind[i])
{
return false;
}
}
return true;
}
然后您可以这样称呼它:
bool startsWithMyName = "mynameisfelix".StartsWith("mynameisthomas", 8); // true
startsWithMyName = "mynameisfelix".StartsWith("mynameisthomas", 10); // false
所以你可以简单地调整你想要匹配的字母数量。