Если вы собираетесь использовать Take
, вам необходимо убедиться, что вы предоставили ему правильный ввод.Если вы сделаете это, то это даст правильный вывод.Вы действительно знаете, что это за входы и выходы?Входные данные - IEnumerable(Of T)
, а выходные данные - еще один IEnumerable(Of T)
, который содержит либо указанное количество элементов, либо все элементы из исходного списка, который когда-либо меньше.Это, очевидно, неправильно:
Process.GetCurrentProcess().MainWindowTitle.Take(4)
, потому что MainWindowTitle
- это String
, поэтому это означает, что ваш ввод будет IEnumerable(Of Char)
, поэтому вы просто получите первые четыре символа в строке.Это выглядит более многообещающе:
Process.GetCurrentProcess().MainWindowTitle.Split.Take(4)
Вы действительно проверили, что Split
возвращает то, что вы думаете, что делает?Когда код работает так, как вы ожидаете, НИКОГДА не предполагайте ничего.Проверьте.
Кстати, Split
- это метод, а не свойство.Вам не нужно использовать круглые скобки при вызове метода, если вы не предоставляете аргументов, но вы делаете это для GetCurentProcess
, так почему бы вам не использовать Split
?Несоответствие всегда плохо.Решите, что вы собираетесь делать, и делайте это в каждом случае.Лично я всегда включаю круглые скобки в вызов метода, для ясности есть аргументы или нет.Я не использую их в конструкторах без аргументов, потому что это можно спутать с созданием массива с первого взгляда.
В любом случае, как я уже сказал, если Split
вернет правильный ввод, то Take
обеспечитправильный вывод.Вопрос в том, знаете ли вы, что делать с этим выводом?Зачем ты это хочешь?IEnumerable(Of T)
должен быть перечислен, чтобы иметь какое-либо применение, и то, как именно вы это сделаете, зависит от того, что именно вы хотите получить.Например, если вы хотите повторно объединить эти подстроки обратно в String
с пробелами между ними, вы должны вызвать String.Join
и передать список в качестве второго аргумента.Конечно, если вы собираетесь это сделать, то вам лучше воспользоваться другим моим предложением, то есть IndexOf
и Split
.