
string[] chkItems = new string[4]; string[] str = new string[4]; str[0] = txtID.Text; str[1] = txtname.Text; str[2] = txtEmail.Text; itemCount = ltbxInterests.SelectedItems.Count; for (int i = 0; i <= itemCount; i++) { ltbxInterests.SelectedItems.copyTo(chkItems,0); // here it is returning an exception //"Object cannot be stored in an array of this type." }
请帮助我如何摆脱这个例外
如何修改正在使用的DLL?
写一个mac的.net软件
卸载框架4.6.2预览
同步两个sql Server 2008数据库
如何deBUGging“错误创build窗口句柄”错误?
几个问题在这里,chkItems被定义为长度4,所以你会得到一个异常,如果你尝试并放入超过4项。源数组SelectedItems是类型的对象,所以你需要投的结果。
假设你只是把字符串放入列表框中,你可以使用(记得引用System.linq)
string[] str = new string[4]; str[0] = txtID.Text; str[1] = txtname.Text; str[2] = txtEmail.Text; string[] chkItems = ltbxInterests.SelectedItems.OfType<string>().ToArray();
如果您想限制前4项,您可以将最后一行替换为
string[] chkItems = ltbxInterests.SelectedItems.OfType<string>().Take(4).ToArray();
你也可以缩短代码来使用数组初始值设定项(但这会使str长度为3,因为你只有3个项目):
string[] str = new [] { txtID.Text,txtname.Text,txtEmail.Text,}
SelectedItems是Object的集合,为了使用copyTo方法, chkItems必须是一个object类型的数组(即object[] )。
否则,您可以使用liNQ将其转换为字符串列表:
var selectedList = ltbxInterests.SelectedItems.OfType<object>() .Select(x => x.ToString()).ToList();
你应该检查> chkItems的类型。
总结以上是内存溢出为你收集整理的将选定的列表框(绑定)项目保存到c#中的数组全部内容,希望文章能够帮你解决将选定的列表框(绑定)项目保存到c#中的数组所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)