Продолжение от Строки. Ответ соединения, для игнорирования пустого указателя/пустых строк (и если Вы используете.NET 3.5) Вы могли бы использовать немного Linq., например,
Dim Result As String
Dim Items As New List(Of String)
Items.Add("Hello")
Items.Add("World")
Result = String.Join(",", Items.ToArray().Where(Function(i) Not String.IsNullOrEmpty(i))
MessageBox.Show(Result)
Используйте понимание вложенного списка. Здесь 'foo' равно '(,)' ':
[ (i,j) | i <- [0 .. 999], j <- [0 .. 999] ]
Или выложено, чтобы сделать вложение более понятным:
[ foo i j
| i <- [0 .. 999]
, j <- [0 .. 999]
]
Помимо ответа Дона, вы можете использовать монаду списка:
do
i <- [0 .. 999]
j <- [0 .. 999]
return (foo i j)
Вы также можете сделать это с помощью Control.Applicative
module Main where
import Control.Applicative
main :: IO ()
main = mapM_ putStrLn (foo <$> [0..3] <*> [0..3])
foo :: Int -> Int -> String
foo a b = "foo " ++ show a ++ " " ++ show b
Пример выполнения:
C:\programming>ghc --make Main.hs
[1 of 1] Compiling Main ( Main.hs, Main.o )
Linking Main.exe ...
C:\programming>main
foo 0 0
foo 0 1
foo 0 2
foo 0 3
foo 1 0
foo 1 1
foo 1 2
foo 1 3
foo 2 0
foo 2 1
foo 2 2
foo 2 3
foo 3 0
foo 3 1
foo 3 2
foo 3 3