如何在Kotlin中构建基于MutableList的List?

时间:2018-04-10 23:45:10

标签: android kotlin

我希望构建一个基于列表b的MutableList,我怎么能在Kotlin中做?

BTW,代码A错了

var a=mutableListOf(b)

代码A

   [DllImport("user32.dll")]
    private static extern IntPtr GetWindow(IntPtr hWnd, uint uCmd);

    const uint GW_HWNDFIRST = 0;
    const uint GW_HWNDLAST = 1;
    const uint GW_HWNDNEXT = 2;
    const uint GW_HWNDPREV = 3;



    private void button1_Click(object sender, EventArgs e)
    {
        Form fr;
        var hwndTmp = GetWindow(Handle, GW_HWNDFIRST);

        while (hwndTmp != IntPtr.Zero)
        {
            if (Handle == hwndTmp)
            {
                fr = (Form)Form.FromHandle(hwndTmp);
                MessageBox.Show(fr.Text);
            }

            hwndTmp = GetWindow(hwndTmp, GW_HWNDNEXT);
            if (hwndTmp != (IntPtr)0)
            {
                fr = (Form)Form.FromHandle(hwndTmp);
                MessageBox.Show(fr.Text);
            }

        }

    }

3 个答案:

答案 0 :(得分:5)

Kotlin有几个版本的toMutableList()扩展功能应该覆盖你。查看the documentation here

基本上,在任何CollectionInterable,键入Array或通用Array上,您都可以调用.toMutableList()并创建一个新的MutableList(支持by ArrayList)。

因此,在您的代码中,您可以执行此操作(我显示类型,您可以将其关闭):

var b: List<MSetting> = listOf(...)
var a: MutableList<MSetting> = b.toMutableList()

答案 1 :(得分:1)

这是一种通用的,需要类型信息,例如

    var a = mutableListOf<Int>()

我在https://try.kotlinlang.org/#/

进行了测试

编辑:我没有仔细阅读,你想要的应该是toMutableList方法。

    var b = listOf(2, 3);
    var a = b.toMutableList()

答案 2 :(得分:1)

这很容易:

val listB = listA?.toMutableList() ?: mutableListOf() // list B = A if (A != null), other wise, B = new empty list