이 오류가 발생합니다 :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와는 아무런 관련이 없습니다. 배열을 검사하십시오. 잘못된 색인을 사용하고 있습니다. 빈 배열의 항목에 액세스하려고했을 가능성이 있습니까? –
좀 더 관리하기 쉬운 것으로 나눠 봤어? 한 눈에 많은 항목을 가질 수있는 배열에 대한 많은 인덱스가 있습니다 (예 : null 인 경우 "Unknown"으로 설정하면 분할 할 때 하나의 항목 만 포함됨 - 항목을 가져 오려고 시도 함). 1 또는 2는이 예외와 함께 실패합니다. –
공간에 "Unkown"을 분할하면 하나의 값만있는 배열이 생성됩니다. – juharr