如果字符串的开头等于另一个字符串

时间:2017-05-10 13:16:02

标签: c# string

我的列表包含:{"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()那样完整的单词。

我根本不知道如何创建这个......

谢谢,

5 个答案:

答案 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()正是您所寻找的。

但你也可以为那个

创建自己的ExtensionMethod
public 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 

所以你可以简单地调整你想要匹配的字母数量。