Int.TryParse を使用できます
var cardsList = cardList.Where(_item => {
int conv;
return int.TryParse(_item.CARD_MANA_CONVT, out conv) &&
conv > 5;
});
X が >5 であると想定される場合
var cardsList = cardList.Where(_item => {
int conv;
return _item.CARD_MANA_CONVT == "X" ||
(
int.TryParse(_item.CARD_MANA_CONVT, out conv) &&
conv > 5
);
});
これによりクエリが読みにくくなることがわかった場合は、拡張メソッドに抽出できます。
public static class ManaHelper {
public static bool IsGreaterThan(this string mana, int value, bool includeX) {
if (mana == "X") return includeX;
int manaValue;
return int.TryParse(mana, out manaValue) && manaValue > value;
}
}
次に、次のことができます。
var cardsList = cardList.Where(_item => _item.CARD_MANA_CONVT.IsGreaterThan(5,false));
または結果にX
含める
var cardsList = cardList.Where(_item => _item.CARD_MANA_CONVT.IsGreaterThan(5,true));