标签: generic-collections

使用泛型类型'System.Collections.Generic.List <T>'需要1个类型参数

这是什么意思?我以前在ASP.NET MVC的目录列表并送他们通过ViewDataActionResuls在视图中进行检索.

但是,当我将其更改为列表列表时,它会给我一个错误HttpWebException.当我在即时窗口内检查它时,它告诉我错误是:

使用泛型类型'System.Collections.Generic.List <T>'需要1个类型参数

那么,它是什么意思,我用它做错了什么?

.net c# generics asp.net-mvc generic-collections

4
推荐指数
1
解决办法
2万
查看次数

C#的SortedBag <T>

我正在为C#寻找一个SortedBag实现,我的用例如下:我有一系列的对象正在使用自定义IComparer实现进行估计和整理,问题是完全不同的对象可能产生相同的估计,当我尝试使用C#的默认排序集合(如SortedSet,SortedDictionary实现)时,我无法使用相同的估计向这些集合插入多个对象,因为集合认为这些对象相等并拒绝插入它们.我需要一个具有O(log(N))的SortedBag实现,用于插入和删除,因为我正在非常积极地进行插入/删除.

有没有人偶然发现这样的实施?

谢谢!

编辑

似乎我在寻找Priority Queue而不是SortedBag ...

c# collections generic-collections

4
推荐指数
1
解决办法
1592
查看次数

Java中的命令行查询

我正在访问MongoDB,并希望在Java中重用典型的命令行查询.我知道可以使用BasicDBObject,但我想使用这样的命令行查询:

db.MyCollection.find()
Run Code Online (Sandbox Code Playgroud)

我现在尝试使用数据库的command()方法:

MongoClient mongoClient = new MongoClient("localhost", 27017);
DB db = mongoClient.getDB("MyDatabase");
CommandResult result= db.command("db.MyCollection.find()");
JSONObject resultJson = new JSONObject(result.toString());
System.out.println(resultJson.toString(4));
Run Code Online (Sandbox Code Playgroud)

但这会给我带来以下结果.

"ok": 0,
"code": 59,
"errmsg": "no such cmd: db.MyCollection.find()",
"bad cmd": {"db.MyCollection.find()": true},
"serverUsed": "localhost:27017"
Run Code Online (Sandbox Code Playgroud)

如何在Java中运行命令行查询?

我不想使用DBCollection类 - 因为它不再可能为不同的集合运行查询.

DBCollection collection = db.getCollection("MyCollection");
collection.find(); //NOT THIS
Run Code Online (Sandbox Code Playgroud)

java mongodb generic-collections

4
推荐指数
1
解决办法
5374
查看次数

如何为任何可迭代类型实现特征?

我想实现一个可在任何容器或迭代器上调用的通用方法,该方法可以迭代特定类型,例如&[u32]Vec<u32>(0..99u32)等。

以下代码无法编译:

trait Foo { fn foo(self); }

impl Foo for std::iter::IntoIterator<Item=u32> {
    fn foo(self) {}
}
Run Code Online (Sandbox Code Playgroud)

错误:必须指定关联类型的值IntoIter(来自 Trait )[E0191]core::iter::IntoIterator

impl Foo for std::iter::IntoIterator<Item=u32> {
Run Code Online (Sandbox Code Playgroud)

关联类型需要指定什么IntoIter?( std::iter::IntoIterator<Item=u32,IntoIter=???>)

这样就可以了:

vec![0u32].foo()
Run Code Online (Sandbox Code Playgroud)

iterator traits generic-programming generic-collections rust

4
推荐指数
1
解决办法
1459
查看次数

如何从列表中删除特定字段

班级结构

 public class EmployeeDetails
 {
        public int Id { get; set; }
        public string Name { get; set; }
        public string Exp { get; set; }
 }
Run Code Online (Sandbox Code Playgroud)

员工详细信息列表

Id Name       Exp
-- ---------  --------
1  Bill       2 years
2  John       5 years
3  Doug       1 years
Run Code Online (Sandbox Code Playgroud)

我想删除一个字段表单列表对象Id,如下面的输出

Name       Exp
---------  --------
Bill       2 years
John       5 years
Doug       1 years
Run Code Online (Sandbox Code Playgroud)

谁都知道该怎么办?
与我分享
谢谢

c# list generic-list generic-collections

4
推荐指数
1
解决办法
5265
查看次数

c#数组或集合

你会怎么做?我有一个数据列表,有两件事需要存储价格和项目,无论如何将数据存储在一个数组而不知道我将拥有的总行数?或者我应该使用一个集合,那些可以是多维的吗?

谢谢

c# arrays collections generic-collections

3
推荐指数
1
解决办法
4280
查看次数

如何将项目添加到通用集合?

鉴于:

public static void DoStuff<T>(ICollection<T> source)
{
    Customer c = new Customer();
    ....
    source.Add(c);
}
Run Code Online (Sandbox Code Playgroud)

除了c不是类型<T>.

那么如何将项目添加到通用集合中?


试过:

public static void DoStuff(ICollection<Human> source)
{
    Customer c = new Customer();
    ....
    source.Add(c);
}
Run Code Online (Sandbox Code Playgroud)

但我不使用它,因为没有人可以打电话DoStuff:

ICollection<Customer> c;
DoStuff(c); <---error
Run Code Online (Sandbox Code Playgroud)

因为有关协方差的东西,并且.NET没有意识到Customer来自Human:

class Customer : Human {}
Run Code Online (Sandbox Code Playgroud)

c# collections generic-collections

3
推荐指数
2
解决办法
2761
查看次数

泛型类型:通配符与原始类型的变量

考虑以下方法:

public static void listAll(LinkedList list) {

    for(Object obj : list)
        System.out.println(obj);

}
Run Code Online (Sandbox Code Playgroud)

public static void listAll(LinkedList<?> list) {

    for(Object obj : list)
        System.out.println(obj);

}
Run Code Online (Sandbox Code Playgroud)

这两种方法有什么区别?如果没有区别,为什么要使用第二个呢?

java oop generic-collections

3
推荐指数
1
解决办法
798
查看次数

不同属性的通用foreach循环

我试图使用foreach循环的泛型方法,它将传递不同的参数作为参数.

在下面的这个例子中,我想传递不同的参数(EmployeeDisplayOrder或EmployeeEnrollOrder)

public void SaveEmployeeDisplayOrder(ICollection<Employee> employees)
{
   //some code

   foreach( var emp in employees)
   {
      UpdateSpecificEmployeeOrder(employee.id, e => e.EmployeeDisplayOrder);
   }
}

public void SaveEmployeeEnrollOrder(ICollection<Employee> employees)
{
   //some code

   foreach( var emp in employees)
   {
     UpdateSpecificEmployeeOrder(employee.id, e => e.EmployeeEnrollOrder);
   }
}
Run Code Online (Sandbox Code Playgroud)

我想要这样的东西

public void UpdateEmployeeOrders(ICollection<Employee> employee)
{ 
  foreach( var emp in employees)
  {
    UpdateSpecificEmployeeOrder(employee.id, //generic property);
  }
}
Run Code Online (Sandbox Code Playgroud)

并从SaveEmployeeDisplayOrder和SaveEmployeeEnrollOrder调用此UpdateEmployeeOrders泛型方法.

UpdateSpecificEmployeeOrder的方法签名

UpdateSpecificEmployeeOrder( int employeeid, params Expression<Func<Employee, object>>[] property)
Run Code Online (Sandbox Code Playgroud)

这可能吗?

c# generics foreach generic-method generic-collections

3
推荐指数
1
解决办法
886
查看次数

Java ArrayList indexOf泛型类型

ArrayList描述为

public class ArrayList<E> extends AbstractList<E>
    implements List<E>, RandomAccess, Cloneable, java.io.Serializable
Run Code Online (Sandbox Code Playgroud)

而且大多数主要方法都适用于E泛型类型(getsetaddaddAll等)。

但是方法containsindexOflastIndexOfremove对象类型作为参数-这仅是由于内部使用或Object.equals()或其他原因吗?

java generics arraylist generic-collections

3
推荐指数
1
解决办法
565
查看次数