标签: icollection

是否可以在C#中使用{a,b,c}实例化队列?

是否有可能在C#中做到这一点?

Queue<string> helperStrings = {"right", "left", "up", "down"};
Run Code Online (Sandbox Code Playgroud)

或者我必须首先制作阵列?

c# arrays queue icollection

5
推荐指数
2
解决办法
1747
查看次数

将ASP.NET MVC 3与Razor一起使用,将ICollection添加到Create视图的最有效方法是什么?

我正在使用Entity Framework Code First来生成我的数据库,因此我有一个如下定义的对象:

public class Band
{
    public int Id { get; set; }
    [Required(ErrorMessage = "You must enter a name of this band.")]
    public string Name { get; set; }
    // ...
    public virtual ICollection<Genre> Genres { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

现在我正在寻找一个创建视图,默认的脚手架不是在我的表单中添加Genres,从过去的经验来看,这是我期望的.

在线查看我发现使用ASP.NET MVC v2 EditorFor和DisplayFor与IEnumerable <T>一般类型似乎最接近我想要的,但似乎没有用Razor和可能MVC 3,每ASP.使用UIHint的NET MVC 3自定义显示模板 - 是否需要循环?.

目前我已经将类型列表添加到ViewBag中,然后在我的创建视图中循环遍历该列表:

@{
    List<Genre> genreList = ViewBag.Genres as List<Genre>;
}
// ...
<ul>
@for (int i = 0; i < genreList.Count; i++)
{ …
Run Code Online (Sandbox Code Playgroud)

icollection razor asp.net-mvc-3

5
推荐指数
1
解决办法
914
查看次数

ASP MVC3-BeginCollectionItem返回null

我正在尝试使用 史蒂夫·桑德森(Steve Sanderson)的博客文章,其中涉及将收集项目绑定到模型。但是,我看到一些奇怪的行为,在帖子或其他讨论中找不到答案。

在我的模型中BankListMaster,我有ICollection一个单独模型的对象BankAgentIdBankListMaster并且BankListAgentId在我们的SQL数据库中具有一对多关系。

我在Edit页面上遇到了问题。页面加载时,我们当前与BankListMaster我正在处理的项目关联的三个代理ID会正确加载。但是,如果我点击“保存”,则会看到该ICollection对象(bankListAgentId)具有三个项目的计数,但是每个相应的字段都包含一个null值。

如果我选择Add another,则按照博客文章中,Ajax将调用部分视图,该视图将正确地附加到表中。

现在,如果我单击“保存”,我看到ICollection对象计数增加了一个项目,达到了4。所有最初GET重新加载项目的项目都包含null字段值,但是新附加项目的AgentIdStateCode字段包含正确的信息(新项目的所有其他字段为null)。

相对于ASP MVC来说还是相对较新的,所以我不确定正在发生什么或朝哪个方向看。

这是主视图中的表格。我已经尝试过有无@Html.Hidden项目,并且收到了相同的结果。

@model Monet.Models.BankListMaster

@{
    ViewBag.Title = "Edit";
}
    <fieldset>
        <legend>Stat(s) Fixed</legend>
        <table id="fixedRows">
            <thead>
                <tr>
                    <th>State Code</th>
                    <th>Agent ID</th>
                    <th></th>
                    <th></th>
                </tr>
           </thead>
           <tbody>

                @for (int i = 0; i < …
Run Code Online (Sandbox Code Playgroud)

jquery icollection asp.net-mvc-3 asp.net-mvc-2

5
推荐指数
1
解决办法
2178
查看次数

是否有一种简单而优雅的方式使ICollection在C#中更流畅?

例如:我想有Add方法ICollection的自定义集合类来实现方法链接和流利的语言,所以我能做到这一点的:

randomObject.Add("I").Add("Can").Add("Chain").Add("This").
Run Code Online (Sandbox Code Playgroud)

我可以想到一些选项,但它们很混乱,并涉及将ICollection包装在另一个界面中等等.

c# fluent icollection method-chaining

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

Posting Nested Collection to Web API

I'm trying to post a complex type object to web api. On the web api side, when method recieves the object parameter, every property is set properly except a collection that is derived from ICollection.

Here is my sample classes:

public class MyClass
{
    private int id;

    public int Id
    {
        get { return id; }
        set { id = value; }
    }

    private MyCollection<string> collection;

    public MyCollection<string> Collection
    {
        get { return collection; }
        set { collection = value; …
Run Code Online (Sandbox Code Playgroud)

c# binding icollection asp.net-web-api

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

数组没有实现 ICollection&lt;T&gt; 但可以赋值

看看这段疯狂的代码:

ICollection<int> list = new[] {1, 2, 3};
list.Add(4); // NotSupportedException: Collection was of a fixed size.
Run Code Online (Sandbox Code Playgroud)

我不怀疑这个例外!我想知道可以将一个简单的数组分配给ICollection<T>. 我看到了Array工具IListICollection但据我所知它从未实现ICollection<T>

c# arrays icollection

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

ICollection 上的 MinLength 约束失败,实体框架

这是我拥有的数据模型:

public class Team
{
    [Key]
    public int Id { get; set;} 
    [Required]
    public string Name { get; set; }

    [MinLength(1)]
    public virtual ICollection<User> Users { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

我的问题是,当我稍后尝试创建一个新团队(有一个用户)时,我在保存上下文时遇到以下问题。

调用 System.ComponentModel.DataAnnotations.MinLengthAttribute.IsValid 时,在验证“用户”期间抛出意外异常。有关详细信息,请参阅内部异常。

内部异常如下:

{“无法将“System.Collections.Generic.List`1[MyNameSpace.Model.User]”类型的对象转换为“System.Array”。”}

这是实际保存的代码(现在在控制器中):

        if (ModelState.IsValid)
        {
            team.Users = new List<User>();
            team.Users.Add(CurrentUser);//CurrentUser is a property that gives me the currently active User (MyNamespace.Model.User).
            DB.Teams.Add(team);//DB is a DbContext object that holds DbSets of all my models
            DB.SaveChanges();
            return RedirectToAction("Index");
        }
Run Code Online (Sandbox Code Playgroud)

那么,这里发生了什么?我做错了什么,还是发生了其他事情?

casting icollection asp.net-mvc-4 entity-framework-4.3

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

F#返回ICollection

我正在使用C#创建的库.我一直在努力将一些代码移植到F#,但必须使用C#lib中的一些底层类型.

一段代码需要计算值列表并将其分配给类中的公共字段/属性.该字段是一个包含两个ICollection的C#类.

我的F#代码工作正常,需要返回F#Seq/List.

我尝试了以下代码片段,每个代码片段都会产生错误.

  • F#member的返回类型是一个名为recoveryList的类型,其类型为Recoveries list
  • 类中的公共字段,它本身包含两个ICollection对象

    this.field.Collection1 = recoveries
    
    Run Code Online (Sandbox Code Playgroud)

这给出了错误Expected具有类型ICollection但具有类型Recoveries列表

this.field.Collection1 = new ResizeArray<Recoveries>()
Run Code Online (Sandbox Code Playgroud)

给出错误预期类型ICollection但是ResizeArray

this.field.Collection1 = new System.Collections.Generic.List<Recoveries>()
Run Code Online (Sandbox Code Playgroud)

与上面相同的错误 - 预期的ICollection但类型是List

有任何想法吗?从C#的角度来看,这些操作似乎是有效的,而List/ResizeArray实现了ICollection所以...我很困惑如何分配值.

我可以更改底层C#库的类型,但这可能有其他含义.

谢谢

f# icollection

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

ICollection <T>到字符串数组(使用字符串属性)

我有一个ICollectionThing.Thingstring房产Name.我想得到一个Name在我的所有ICollection.我知道我可以通过遍历集合并构建数组来实现这一点,但是有一种更简洁的方法来使用lambda表示法吗?

c# linq lambda icollection

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

C#中的数组与通用

我注意到c#中的数组实现了ICollection<T>.数组如何实现通用容器接口,但本身不是通用的?我们可以这样做吗?

编辑:我也想知道数组是如何通用的,但它接受任何类型并具有类型安全性.

public class ListOfStrings : IList<string>
{
...
}
Run Code Online (Sandbox Code Playgroud)

这是一个很好的例子,表明我们可以从泛型创建非泛型(谢谢MarcinJuraszek !!).这个集合会被字符串困住.我的猜测是它与字符串的泛型值类型声明无关,而且是我不熟悉的一些内部连线.

再次感谢你!

c# arrays generics icollection

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