2017-06-01 32 views
0

我有一個字符串列表,我必須定義一個規則來在Web API中驗證我的ModelState。關於字符串列表的流暢驗證

此列表中的每個字符串元素只應具有長度= 2。不大於2或小於2.

我寫了這樣的東西,但它不工作。

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

有人可以幫我在這裏。

+0

難道不應該更喜歡'RuleFor(M => m.State)。必須(S => s.TrueForAll(X => X .Length == 2))'; 'RuleFor'旨在選擇要驗證的屬性,然後在此之後進行驗證。 – juharr

+0

[您如何使用Fluent驗證對列表中的每個字符串進行驗證?](https://stackoverflow.com/questions/10190316/how-do-you-validate-against-each-string-in-a -list-using-fluent-validation) –

+0

@juharr這工作!謝謝。 – S7H

回答

0

你有沒有嘗試過這樣的:

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

yourList是輸入列表,執行後,如果列表中的所有元素都長2isAllValid值將是真實的。如果字符串中的任何項目小於2或大於2,則isAllValid的值將爲false。如果您附上此方法下,那麼它的簽名是:

public bool IsAllItemsValid(List<string> yourList) 
{ 
    return yourList.All(x => x.Length == 2); 
}