Это ужасное состояние без прерывания (TASK_UNINTERRUPTIBLE) процесса. Это состояние, в котором процесс не реагирует на сигналы до тех пор, пока он не начнет ждать, выполняется. К сожалению, это необходимое зло. См. здесь и здесь Что такое непрерывный процесс? .
Мой ответ - перезагрузить систему. Вызывают ли перезагрузка какие-либо проблемы? Трудно сказать, возможно, это не так. Процесс, который находится в состоянии D, может потребоваться сделать некоторые важные обновления, которые не будут выполняться при перезагрузке. Если вы действительно не можете позволить себе перезагрузиться, попробуйте найти диск, на котором ожидает процесс, и посмотрите, работает ли диск нормально, открыв, закрыв, прочитав / записав в него
string[]
- массив (вектор) строк string
- это просто строка (список / массив символов)
В зависимости от того, как вы хотите преобразовать это, канонический ответ может быть :
return String.Join(" ", myStringArray);
return new []{ myString };
zerkms сказал вам разницу. Если вам нравится, вы можете «преобразовать» строку в массив строк с длиной 1.
Если вы хотите отправить строку в качестве аргумента, например, вы можете сделать вот так:
var myString = "Test";
MethodThatRequiresStringArrayAsParameter( new[]{myString} );
Я, честно говоря, не вижу никакой другой причины для преобразования, чем для использования аргумента метода, но если это еще одна причина, вам придется предоставить некоторую информацию о том, что вы пытаетесь выполнить, поскольку, вероятно, существует лучшее решение.
Строка содержит одно значение, но строка [] содержит много строк, так как это массив строк.
Подробнее здесь
Вы можете создать string[]
(строковый массив), который содержит ваш string
как:
string someString = "something";
string[] stringArray = new string[]{ someString };
Теперь переменная stringArray
будет иметь длину 1 и содержать someString
.
String myString = "My String";
String[] myString.Cast<char>().Cast<string>().ToArray();
Salam.
Если вы хотите преобразовать строку типа "Mohammad"
в String[]
, которая содержит все символы в качестве String
, это может помочь вам:
"Mohammad".ToCharArray().Select(c => c.ToString()).ToArray()
A string
- одна строка, а string[]
- строковый массив. Это означает, что это переменная с несколькими строками в ней.
Хотя вы можете преобразовать string
в string[]
(создать массив строк с одним элементом в нем), это, вероятно, признак того, повторять попытку сделать что-то, чего вы не должны делать.
Если вы просто новичок и хотите разбить строку на массив букв, но не знаете правильной терминологии, это char [];
String myString = "My String";
char[] characters = myString.ToCharArray();
Если это не то, что вы искали, извините за то, что тратили свое время: P
Чтобы преобразовать строку с значениями, разделенными запятыми, в строковый массив, используйте Split
:
string strOne = "One,Two,Three,Four";
string[] strArrayOne = new string[] {""};
//somewhere in your code
strArrayOne = strOne.Split(',');
Результат будет строковым массивом с четырьмя строками:
{«Один», «Два», «Три», «Четыре»}
blockquote>
Массив - это фиксированный набор данных того же типа, которые хранятся смежно и доступны по индексу (основанный на нуле).
Строка представляет собой последовательность символов.
Следовательно, String[]
представляет собой набор из Strings
.
Например:
String foo = "Foo"; // one instance of String
String[] foos = new String[] { "Foo1", "Foo2", "Foo3" };
String firstFoo = foos[0]; // "Foo1"
Массивы (Руководство по программированию на C #)
Редактирование: очевидно, что нет прямого способа конвертировать один String
в String[]
или наоборот. Хотя вы можете использовать String.Split
, чтобы получить String[]
из String
с помощью разделителя (например, запятой).
Чтобы «преобразовать» String[]
в String
(противоположное), вы можете использовать String.Join
. Вам нужно указать, как вы хотите присоединиться к этим строкам (f.e. С запятой).
Вот пример:
var foos = "Foo1,Foo2,Foo3";
var fooArray = foos.Split(','); // now you have an array of 3 strings
foos = String.Join(",", fooArray); // now you have the same as in the first line