using System;
using System.Collections;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace collectiong_test
{
class music
{
private ArrayList mylist = new ArrayList();
private readonly string author;
private ArrayList works = new ArrayList(); public music(string author)
{
mylist.Add(author);
this.author = author;
} public ArrayList Works
{
get
{
return works;
}
set
{
works.Add(value);
}
} public void method()
{
Console.Write(author+": ");
foreach (string work in works)
{
Console.Write(work+",");
}
} public ArrayList this[string index]
{
get
{
foreach (music my_m in mylist)
{
if (my_m.author == index)
{
return my_m.works;
}
}
return null;
}
set
{
foreach (music my_m in mylist)
{
if (my_m.author == index)
{
my_m.works.Add(value);
}
}
}
}
}
class program
{
static void Main(string[] args)
{
music mymusic = new music("jay");
mymusic.Works.Add("works1");
mymusic.Works.Add("works2");
mymusic.Works.Add("works3");
mymusic["jay"] = "works4";//使用索引器添加
// works4 这里报错 错误无法将类型“string”隐式转换“System.Collections.ArrayList”
mymusic.method();
Console.ReadKey();
}
}
}代码如上 想通过索引器来添加 总是写不对 求前辈帮忙!!
using System.Collections;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace collectiong_test
{
class music
{
private ArrayList mylist = new ArrayList();
private readonly string author;
private ArrayList works = new ArrayList(); public music(string author)
{
mylist.Add(author);
this.author = author;
} public ArrayList Works
{
get
{
return works;
}
set
{
works.Add(value);
}
} public void method()
{
Console.Write(author+": ");
foreach (string work in works)
{
Console.Write(work+",");
}
} public ArrayList this[string index]
{
get
{
foreach (music my_m in mylist)
{
if (my_m.author == index)
{
return my_m.works;
}
}
return null;
}
set
{
foreach (music my_m in mylist)
{
if (my_m.author == index)
{
my_m.works.Add(value);
}
}
}
}
}
class program
{
static void Main(string[] args)
{
music mymusic = new music("jay");
mymusic.Works.Add("works1");
mymusic.Works.Add("works2");
mymusic.Works.Add("works3");
mymusic["jay"] = "works4";//使用索引器添加
// works4 这里报错 错误无法将类型“string”隐式转换“System.Collections.ArrayList”
mymusic.method();
Console.ReadKey();
}
}
}代码如上 想通过索引器来添加 总是写不对 求前辈帮忙!!
my_m.works.Add(value);
中的value也是ArrayList 类型才行
// works4 这里报错 错误无法将类型“string”隐式转换“System.Collections.ArrayList”public ArrayList this[string index]这不是很明显的错误吗索引器接收的类型是ArrayList 你给了一个string ("works4")
所以提示错误 无法将类型“string”隐式转换“System.Collections.ArrayList”
ArrayList arr= new ArrayList();
arr.Add(strItem);
mymusic["jay"] = arr;
public ArrayList this[string index]
{
get
{
foreach (music my_m in mylist)
{
if (my_m.author == index)
{
return my_m.works;
}
}
return null;
}
set
{
foreach (music my_m in mylist)
{
if (my_m.author == index)
{
//my_m.works.Add(value);
my_m.works.AddRange(value);
}
}
}
}