3 回答
TA贡献1859条经验 获得超6个赞
您可以为此使用泛型。下面的addToList方法是一个通用方法,它接受任何类型的列表和对象来添加它。
public static <T> void addToList(final List<T> list, final T toAdd) {
list.add(toAdd);
}
public static void main(final String[] args) {
final List<Book> listBook = new ArrayList<Book>();
final List<Pen> listPen = new ArrayList<Pen>();
addToList(listPen, new Pen());
addToList(listBook, new Book());
}
注意(不可能):在您的代码中,您创建了 的对象List,而 List 是一个接口,因此您无法创建 List 的对象。相反,它应该是ArrayList().
TA贡献1830条经验 获得超9个赞
如果您只寻找一种方法(即 Add()),这里是完整的代码。
using System.Collections.Generic;
using System.Linq;
using System.Text.RegularExpressions;
namespace Rextester
{
public class Book
{
public string name;
public int id;
public Book(string name, int id)
{
this.name = name;
this.id = id;
}
}
public class Pen
{
public string name;
public int id;
public Pen(string name, int id)
{
this.name = name;
this.id = id;
}
}
public class Program
{
static List<Book> listBook = new List<Book>();
static List<Pen> listPen = new List<Pen>();
public static void Main(string[] args)
{
listBook.Add(new Book
(
"Book1",
1
));
listBook.Add(new Book
("Book2",
2
));
listPen.Add(new Pen
("Pen1",
1
));
listPen.Add(new Pen("Pen2", 2));
//Testing with new book list
List<Book> newListBook = new List<Book>();
newListBook.Add(new Book
("Book3",
3
));
newListBook.Add(new Book
("Book4",
4
));
Add(newListBook);
foreach (var item in listBook)
{
Console.WriteLine(item.name);
}
List<Pen> newListPen = new List<Pen>();
newListPen.Add(new Pen
("Pen3",
3
));
newListPen.Add(new Pen
("Pen4",
4
));
Add(newListPen);
foreach (var item in listPen)
{
Console.WriteLine(item.name);
}
Console.ReadLine();
}
public static void Add<T>(IEnumerable<T> obj)
{
foreach (var item in obj)
{
if (item is Book)
{
listBook.Add(item as Book);
}
if (item is Pen)
{
listPen.Add(item as Pen);
}
}
}
}
}
TA贡献1826条经验 获得超6个赞
不确定我是否正确理解你的问题,所以我会根据你使用 C# 的假设提出一些解决方案:
情况1:如果你只是想向列表中添加一个项目,那么就使用Ling。
using System.Linq;
List<Book> books = new List<Book>();
Book myBook = new Book();
books.Add(myBook);
情况2:如果你想创建一个适用于任何数据类型的方法,那么编写一个模板
public void MyAddMethod<T>(ref List<T> list, T item)
{
list.Add(item);
}
List<Book> book = new List<Book>();
Book myBook = new Book();
MyAddMethod(ref books, myBook);
这是我最好的选择。希望这可以帮助。
添加回答
举报