私はこのエラーが発生しています:LINQ - "インデックスが配列の範囲外です。"
"インデックスが配列の境界外にありました。" A.LogOutTimeはその後、 "不明" を表示nullを返している場合は、このLINQクエリ
私が欲しいを使用することにより
。
var listItems = (from A in data orderby A.FirstName
select new {
Action = "Logout",
UserName = A.FirstName + " " + A.SurName,
ID = A.Id,
AccessDate = (A.LogOutTime ?? "Unknown")
.Split(new[] { ' ' }, StringSplitOptions.RemoveEmptyEntries)[0],
AccessTimeFrame = (A.LogOutTime ?? "Unknown")
.Split(new[] { ' ' }, StringSplitOptions.RemoveEmptyEntries)[1]
+ " " + (A.LogOutTime ?? "Unknown")
.Split(new[] { ' ' }, StringSplitOptions.RemoveEmptyEntries)[2],
Comment = "Never delete this Archive"
}).Distinct();
どうすればこの問題を解決できますか?
これはLINQとは関係ありません。あなたの配列をチェックし、あなたは間違ったインデックスを使っています。おそらく、空の配列の項目にアクセスしようとしていますか? –
もう少し扱いやすいものに分割しますか?一見すると、多くの項目を持つことが保証されていない配列には多くのインデックスがあります(たとえばヌルの場合は、「Unknown」に設定します。分割すると、単一の項目しか持たない) 1または2はこの例外で失敗します)。 –
スペース上で「Unkown」を分割すると、値が1つしかない配列が得られます。 – juharr