У меня есть небольшая проблема, которую я понятия не имею, как решить. Я дам код who; e из класса, чтобы вы могли видеть, что он делает:
{
class CompetitorDataFile
{
//collection of DataFileRecords - people
public List<DataFileRecord> DataFileRecords;
public string FileName = "";
//called when DataFile created
public CompetitorDataFile(string FileName)
{
//creates the collection
DataFileRecords = new List<DataFileRecord>();
this.FileName = FileName;
}
//fill DataFileRecords with stuff from text file
public void ReadDataFile()
{
foreach (string s in File.ReadAllLines(FileName))
{
if (s == "") continue;
DataFileRecord dfr = new DataFileRecord();
dfr.Name = s.Split(',')[0];
dfr.CPSA = s.Split(',')[1];
dfr.PostCode = s.Split(',')[2];
dfr.Rank = s.Split(',')[3];
dfr.Score1 = s.Split(',')[4]; //new for score system
dfr.Score2 = s.Split(',')[5]; //new for score system
dfr.Score3 = s.Split(',')[6]; //new for score system
dfr.Score4 = s.Split(',')[7]; //new for score system
dfr.Score5 = s.Split(',')[8]; //new for score system
dfr.Score6 = s.Split(',')[9]; //new for score system
dfr.Score7 = s.Split(',')[10]; //new for score system
dfr.Score8 = s.Split(',')[11]; //new for score system
dfr.TotalSingleScore = s.Split(',')[12]; //new for score system
DataFileRecords.Add(dfr);
}
}
public int FindByCPSA(string CPSA)
{
//set index to 0
int index = 0;
//go through each record looking for CPSA number match
foreach (DataFileRecord dfr in DataFileRecords)
{
if (dfr.CPSA.ToLower() == CPSA.ToLower())
{
//if it's found return the current index
return index;
}
//increase index and move to next record
index++;
}
//not found returning -1
return -1;
}
//save DataFile records to text file
public void SaveDataFile()
{
//delete backup file if found
if (File.Exists(FileName+".bck"))
File.Delete(FileName+".bck");
//make backup of existing
if (File.Exists(FileName))
File.Move(FileName, FileName + ".bck");
//create a temporary array of string
List<string> stringy = new List<string>(DataFileRecords.Count);
//go through each DataFile record and create a single string line
foreach (DataFileRecord dfr in DataFileRecords)
stringy.Add(dfr.SingleString);
//saves all strings to file
File.WriteAllLines(FileName, stringy.ToArray());
}
}
//a single record - one person
public class DataFileRecord
{
public string Name;
public string CPSA;
public string PostCode;
public string Rank;
public string Score1; //new for score system
public string Score2; //new for score system
public string Score3; //new for score system
public string Score4; //new for score system
public string Score5; //new for score system
public string Score6; //new for score system
public string Score7; //new for score system
public string Score8; //new for score system
public Int64 TotalSingleScore; // used to get total score for one user
public string SingleString
{
get
{
return string.Format("{0},{1},{2},{3},{4},{5},{6},{7},{8},{9},{10},{11}", Name, CPSA, PostCode, Rank, Score1, Score2, Score3, Score4, Score5, Score6, Score7, Score8); //,{4} and , Score are new for score system
}
}
public string PoshSingleString
{
get
{
return string.Format("{0,-20}|{1,-10}|{2,-9}|{3,-9}|{4,2}|{5,2}|{6,2}|{7,2}|{8,2}|{9,2}|{10,2}|{11,2}", Name, CPSA, PostCode, Rank, Score1, Score2, Score3, Score4, Score5, Score6, Score7, Score8);
//return SingleString.Replace(",0", ""); //may be used to replace 0
//return SingleString.Replace(",", ", ");
}
У меня проблема с этой строкой кода
dfr.TotalSingleScore = s.Split(',')[12];
TotalSingleScore является единственным int (все остальные являются строками), в результате я получаю эту ошибку:
"Ошибка 1 не может неявно преобразовать тип 'string' в 'long'"
Как мне решить эту проблему? Код - C #, а программное обеспечение - VS 2008 Pro
Спасибо