コレクション内のオブジェクトの特定のプロパティのすべての値が数値であり、ゼロより大きいかどうかを判断するロジックを作成しようとしています。これは ForEach を使用して簡単に記述できますが、Linq to Object を使用して行いたいと思います。私はこれを試しました:
var result = entity.Reports.Any(
x =>
x.QuestionBlock == _question.QuestionBlock
&& (!string.IsNullOrEmpty(x.Data)) && Int32.TryParse(x.Data, out tempVal)
&& Int32.Parse(x.Data) > 0);
正しく動作しません。Int32 の TryParse() が、int に解析できない文字列に初めて遭遇したときに false を返すことを期待して、これも試しました。しかし、out パラメーターには、int に解析できる最初の値の文字列値が含まれているようです。
var result = entity.GranteeReportDataModels.Any(
x =>
x.QuestionBlock == _question.QuestionBlock
&& (!string.IsNullOrEmpty(x.Data)) && Int32.TryParse(x.Data, out tempVal));
どんな助けでも大歓迎です!