Sharepointアイテムのリストがあります。各アイテムには、タイトル、説明、およびタイプがあります。正常に取得し、result
と呼びました。最初にresult
にA、B、Cのように始まる項目があるかどうかを確認します。アルファベットごとに同じことを行う必要があります。次に、この文字で始まる単語を見つけます。文字を太字で表示する必要があります。
最初にこの関数を使用して文字を表示します。
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;
}
Wordが特定の文字で始まるかどうかを確認するにはどうすればよいですか?
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.
}
}
このようなことを行って、特定の文字をチェックすることができます。
public bool StartsWith(string value, string currentChar) {
return value.StartsWith(currentChar, true, null);
}
StartsWithメソッドには、大文字小文字を無視するオプションがあります。 3番目のパラメーターは、カルチャを設定することです。 nullの場合、現在のカルチャのみを使用します。この方法を使用すると、単語をループしてチェックを実行し、Wordを処理して、必要に応じて最初の文字を強調表示できます。
チェックするプロパティが文字列型であると仮定すると、 String.StartsWith() メソッドを使用できます。例:-
if(item.Title.StartsWith("A"))
{
//do whatever
}
すすぎ、繰り返し
以下をお試しください。 StartsWithまたはSubstring 0,1(最初の文字)を実行できます
if (Word.Substring(0,1) == "A") {
}
Regular Expressionsを実装できます。それらは非常に強力ですが、式をデザインすると、実際にタスクが実行されます。
たとえば、数字、文字、単語などを見つけることは、非常に表現力豊かで柔軟性があります。
彼らには本当に素晴らしいチュートリアルがあります here :
このような式の例は次のとおりです。
string input = "Some additional string to compare against.";
Match match = Regex.Match(input, @"\ba\w*\b", RegexOptions.IgnoreCase);
これは、大文字と小文字を問わず、「a」で始まるすべての項目を検索します。 LambdaとLinqを利用して、それらのフローをさらに改善します。
うまくいけば、それが役立ちます。
文字列の最初の文字を返すには、次を使用します。
Word.Substring(0,1) //where Word is a string