21

Sharepoint アイテムのリストがあります。各アイテムには、タイトル、説明、およびタイプがあります。私はそれを正常に取得し、呼び出しましたresult。最初に、A、B、C などで始まるアイテムがあるかどうかを確認したいと思いますresult。アルファベット文字ごとに同じことを行う必要があり、この文字で始まる単語が見つかった場合は、太字の文字。

最初に、この関数を使用して文字を表示します。

private string generateHeaderScripts(char currentChar)
{
    string headerScriptHtml = "$(document).ready(function() {" +
        "$(\"#myTable" + currentChar.ToString() + "\") " +
        ".tablesorter({widthFixed: true, widgets: ['zebra']})" +
        ".tablesorterPager({container: $(\"#pager" + currentChar.ToString() +"\")}); " +
        "});";
    return headerScriptHtml;
}

単語が特定の文字で始まるかどうかを確認するにはどうすればよいですか?

4

7 に答える 7

46

1つの値を確認するには、次を使用します。

    string word = "Aword";
    if (word.StartsWith("A")) 
    {
        // do something
    }

A、B、Cのリストを渡すための小さな拡張メソッドを作成できます

    public static bool StartsWithAny(this string source, IEnumerable<string> strings)
    {
        foreach (var valueToCheck in strings)
        {
            if (source.StartsWith(valueToCheck))
            {
                return true;
            }
        }

        return false;
    }

    if (word.StartsWithAny(new List<string>() { "A", "B", "C" })) 
    {
        // do something
    }

また、ボーナスとして、リストから文字列が何で始まるかを知り、その値に基づいて何かを実行したい場合は、次のようにします。

    public static bool StartsWithAny(this string source, IEnumerable<string> strings, out string startsWithValue)
    {
        startsWithValue = null;

        foreach (var valueToCheck in strings)
        {
            if (source.StartsWith(valueToCheck))
            {
                startsWithValue = valueToCheck;
                return true;
            }
        }

        return false;
    }

使用法:

    string word = "AWord";
    string startsWithValue;
    if (word.StartsWithAny(new List<string>() { "a", "b", "c" }, out startsWithValue))
    {
        switch (startsWithValue)
        {
            case "A":
                // Do Something
                break;

            // etc.
        }
    }
于 2013-03-20T15:01:04.357 に答える
2

このようなことを行うと、特定の文字を確認できます。

public bool StartsWith(string value, string currentChar) {
   return value.StartsWith(currentChar, true, null);
}

StartsWith メソッドには、大文字と小文字を区別しないオプションがあります。3 番目のパラメーターは、カルチャを設定することです。null の場合、現在のカルチャが使用されます。このメソッドを使用すると、単語をループし、チェックを実行して単語を処理し、必要に応じて最初の文字を強調表示できます。

于 2013-03-20T15:26:41.897 に答える
1

チェックしているプロパティが文字列型であると仮定すると、 String.StartsWith()メソッドを使用できます。例:-

if(item.Title.StartsWith("A"))
{
    //do whatever
}

すすぎ、繰り返します

于 2013-03-20T15:00:41.977 に答える
1

以下を試してみてください。StartsWith または Substring 0,1 (最初の文字) のいずれかを実行できます

    if (Word.Substring(0,1) == "A") {
    }
于 2013-03-20T15:06:41.103 に答える
0

文字列の最初の文字を返すには、次を使用します。

Word.Substring(0,1) //where word is a string
于 2013-03-20T14:59:43.307 に答える
0

正規表現を実装できます。それらは非常に強力ですが、表現をデザインすると、実際にタスクを達成します。

たとえば、数字、文字、単語などを見つけるのは非常に表現力豊かで柔軟です。

彼らはここに本当に素晴らしいチュートリアルを持っています:

そのような式の例は次のようになります。

string input = "Some additional string to compare against.";
Match match = Regex.Match(input, @"\ba\w*\b", RegexOptions.IgnoreCase);

大文字と小文字を問わず、「a」で始まるすべてのアイテムが検索されます。Lambda と Linq を利用して、フローをさらに改善することさえできます。

うまくいけば、それは役に立ちます。

于 2013-03-20T15:06:31.723 に答える