В .NET Framework нет прямого эквивалента sscanf
.
Простейшим способом достижения такой же функциональности является разделение строки (String.Split
), а затем назначение последующих частей переменным с помощью метода Int32.Parse
. Например:
string myString = "10, 12";
string[] stringValues = myString.Split(new char[] {' '}, StringSplitOptions.RemoveEmptyEntries);
int a = Int32.Parse(stringValues[0]);
int b = Int32.Parse(stringValues[1]);
Много различных типов данных в рамках имеют Parse
метод, в том числе перечислений, если значения, которые вы хотите читать из строки не обязательно являются целыми числами.
Вы также можете использовать regular expressions, но они, вероятно, немного перегружены для выполнения такой простой задачи.
EDIT: Если вы действительно deadset на использовании sscanf
, вы всегда можете рассмотреть P/Вызов функции из библиотек C во время выполнения. Нечто подобное возможно (непроверенные):
[DllImport("msvcrt.dll", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.Cdecl)]
public static extern int sscanf(string buffer, string format, ref int arg0, ref int arg1);
И некоторые люди в Microsoft считают, что 'C#' лучше, чем 'C++' ... ** '(~. ~)' ** –