널 포인터 예외를 수신하고 있으며이 작은 코드 블록으로 범위를 좁혔습니다. 설정했을 때 teamStats[iterator].median = Statistics.median
아직 초기화되지 않았기 때문에 할 수 없기 때문 이라고 생각합니다 . 이 코드가 유발할 수있는 객체 배열이나 메모리 파급 효과를 초기화하는 적절한 방법을 모르겠습니다.
아래는 설명하는 클래스 외에 내가 다루고있는 대부분의 코드입니다 TeamStat
. 그러나 아래의 모든 멤버를 사용했으며 그에 해당 public double
합니다.
TeamStat[] teamStats = new TeamStat[DistCount+1];
int iterator = 0;
foreach (int i in TeamIDlist)
{
var p = userList.Where(x => x.TeamId.Equals(i)).Select(y => (double)y.BS).ToArray();
var statistics = new DescriptiveStatistics(p);
teamStats[iterator].median = Statistics.Median(p);
teamStats[iterator].largestElement = statistics.Maximum;
teamStats[iterator].smallestElement = statistics.Minimum;
teamStats[iterator].mean = statistics.Mean;
teamStats[iterator].variance = statistics.Variance;
teamStats[iterator].stdDev = statistics.StandardDeviation;
iterator++;
}
최신 정보
이 작업을 수행하는 올바른 방법입니까?
TeamStat[] teamStats = new TeamStat[DistCount];
int iterator = 0;
foreach (int i in TeamIDlist)
{
//Added these two lines
TeamStat temp = new TeamStat();
teamStats[iterator] = temp;
var p = userList.Where(x => x.TeamId.Equals(i)).Select(y => (double)y.BS).ToArray();
var statistics = new DescriptiveStatistics(p);
teamStats[iterator].median = Statistics.Median(p);
teamStats[iterator].largestElement = statistics.Maximum;
teamStats[iterator].smallestElement = statistics.Minimum;
teamStats[iterator].mean = statistics.Mean;
teamStats[iterator].variance = statistics.Variance;
teamStats[iterator].stdDev = statistics.StandardDeviation;
iterator++;
}
여기
TeamStat[] teamStats = new TeamStat[DistCount+1];
배열을 초기화합니다. 현재 배열에는 DistCount + 1
null
항목이 포함 됩니다.
배열에 DistCount + 1
새 TeamStat
항목 이 포함 되도록하려면 루프에서 초기화해야합니다.
TeamStat[] teamStats = new TeamStat[DistCount+1];
for (var i = 0; i < DistCount + 1; i++)
teamStats[i] = new TeamStat();
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다