我希望构建一个基于列表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);
}
}
}
答案 0 :(得分:5)
Kotlin有几个版本的toMutableList()
扩展功能应该覆盖你。查看the documentation here。
基本上,在任何Collection
,Interable
,键入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