web-dev-qa-db-ja.com

文字列が空か、C#のすべてのスペースかどうかを確認します

文字列が空白であるか、未確定のスペースでいっぱいであるかどうかを簡単に確認するにはどうすればよいですか?

32
Cody

.NET 4をお持ちの場合は、 string.IsNullOrWhiteSpaceメソッド

if(string.IsNullOrWhiteSpace(myStringValue))
{
    // ...
}

.NET 4がなく、文字列をトリムすることができる場合は、まずトリムをトリムしてから、空かどうかを確認できます。

それ以外の場合は、自分で実装を検討できます。

。Net 3.5コードコントラクトによるString.IsNullOrWhitespaceの実装

61

文字列がnullではないことが既にわかっていて、空の文字列ではないことを確認したい場合は、次を使用します。

public static bool IsEmptyOrWhiteSpace(this string value) =>
  value.All(char.IsWhiteSpace);
31
Shimmy

「文字列が空白か、不特定のスペースでいっぱいか」を文字通り知る必要がある場合は、@ Sonia_ytが示唆するようにLINQを使用しますが、All()を使用して、すぐに効率的に短絡するあなたは非スペースを見つけました。

(これはシミーのギブと同じか、または同じですが、onlyに書かれているOPの質問に答えます。すべての空白ではなくスペースを確認します-\t\n\rなど

/// <summary>
/// Ensure that the string is either the empty string `""` or contains
/// *ONLY SPACES* without any other character OR whitespace type.
/// </summary>
/// <param name="str">The string to check.</param>
/// <returns>`true` if string is empty or only made up of spaces. Otherwise `false`.</returns>
public static bool IsEmptyOrAllSpaces(this string str)
{
    return null != str && str.All(c => c.Equals(' '));
}

コンソールアプリでテストするには...

Console.WriteLine("    ".IsEmptyOrAllSpaces());      // true
Console.WriteLine("".IsEmptyOrAllSpaces());          // true
Console.WriteLine("  BOO  ".IsEmptyOrAllSpaces());   // false

string testMe = null;
Console.WriteLine(testMe.IsEmptyOrAllSpaces());      // false
0
ruffin

LinQを使用して解決してみてください?

if(from c in yourString where c != ' ' select c).Count() != 0)

文字列がすべてスペースではない場合、これはtrueを返します。

0
Sonia_yt