2017-06-01 24 views
0

私は文字列のリストを持っており、Web APIでModelStateを検証するためのルールを定義する必要があります。Fluent Validation on string

このリストの各文字列要素は、長さ= 2のみにする必要があります。 2より大きくないか2より小さい。

私はこう書いたが、うまくいかなかった。

RuleFor(m => m.State.TrueForAll(x => x.Length == 2)).Equals(true); 

ここで私を助けてくれる人がいますか? yourListは、リストのすべての要素が長2である場合に実行された後isAllValidの値がtrueになります、入力リストも

bool isAllValid = yourList.All(x => x.Length == 2); 

+0

ことがよりRuleFor 'のようにすべきではない(M => m.State).Must(S => s.TrueForAll(X => X .Length == 2)) '; 'RuleFor'はあなたが検証したいプロパティを選択することを意図しています。 – juharr

+0

[Fluent Validationを使用してリストの各文字列に対してどのように検証しますか?](https://stackoverflow.com/questions/10190316/how-do-you-validate-against-each-string-in-a -list-using-fluent-validation) –

+0

@juharrこれはうまくいきました!ありがとう。 – S7H

答えて

0

は、あなたがこのようにしようとしています。文字列内の項目のいずれかが2より小さいか、または2より大きい場合、isAllValidの値はfalseになります。あなたは方法の下でこれを囲むと、そのシグネチャは次のようになります。

public bool IsAllItemsValid(List<string> yourList) 
{ 
    return yourList.All(x => x.Length == 2); 
} 
関連する問題