private unsafe static string GetCsvElement(char* csvRow, int rowLength, int index)
{
char* end = csvRow + rowLength;
+ int count = 0;
+ int len = 0;
- for (int i = 0; i < index; i++)
+ while (csvRow != end)
{
- while (*csvRow != ',')
+ if (*csvRow == ',')
{
- if (csvRow == end) return null;
- csvRow++;
+ if (count == index) return new string(csvRow - len, 0, len);
+ count++;
+ len = 0;
}
- csvRow++;
- }
-
- int len = 0;
- while (csvRow != end && *csvRow != ',')
- {
len++;
csvRow++;
}
- return new string(csvRow - len, 0, len);
+ return count == index ? new string(csvRow - len, 0, len) : null;
}
}
}