【问题标题】:the nested list doesn't appear in intellisense visual studio嵌套列表未出现在智能感知视觉工作室中
【发布时间】:2022-01-22 01:32:24
【问题描述】:

如你所见,我有这个模型:

public class UserNotes : BaseEntity
    {
        public IList<SymbolNotes> SymbolsNotes { get; set; }

        public UserNotes(string userId): base($"UserNotes/{userId}")
        {
        }

    }
    public class SymbolNotes
    {
        public string Isin { get; set; }
        public List<NoteItem> Notes { get; set; }
    }

现在我在我的代码中声明了一个名为userNotes的变量,

但是当我指出SymbolsNotes 不在列表中时,为什么?

【问题讨论】:

  • 因为你的userNotesIEnumerable,写userNotes.Select(x =&gt; x.SymbolNotes)
  • SymbolNotes 是 UserNotes 类的一部分,而不是 UserNotess 列表的一部分。您需要先从列表中选择一个 UserNotes 对象。你想要完成什么?你真的需要 UserNotes 列表吗?您想从所有 UserNotes 对象中获取单个 SymbolNotes 列表还是所有 SymbolNotes 列表?
  • 我想添加这样的符号注释:userNotes.SymbolsNotes.Add(newSymbolNotes);
  • @Ortund 我想这样做:userNotes.SymbolsNotes.Add(newSymbolNotes);

标签: c# class model


【解决方案1】:

您有一个变量userNotes,其中包含UserNotes 类的IList。为了简化,你可以想象你有一个盒子的集合,你在上面写了一个整数(盒子在集合中的索引),你拥有的每个盒子的内容是UserNotes类的一个实例。

当你写 userNotes. 时,你的目标是 box 的集合。因此,要访问类UserNotes 的内容,您必须定位一个特定的框来查看里面的内容以访问实例。那么只有您可以访问属性SymbolsNotes

另一种可视化方式就像一本纸质字典,它有很多翻译,但你不能只对编辑说“更改描述”,你必须说“更改字典中第一个单词的描述” ”,或者“改变‘香蕉’这个词的描述”。

在 C# 中,您有多种可能性:

当然还有很多其他方法,但我只是写了 3 种最常用的方法。

你可以这样:

使用索引

userNotes[0].SymbolsNotes.Add(newSymbolNotes);

使用First Linq 方法

userNotes.First().SymbolsNotes.Add(newSymbolNotes);

使用Single Linq 方法

userNotes.Single(/* Condition with lambda expression */).SymbolsNotes.Add(newSymbolNotes);

【讨论】:

    猜你喜欢
    • 2011-10-10
    • 1970-01-01
    • 2015-08-17
    • 2013-07-10
    • 2016-10-20
    • 1970-01-01
    • 2021-09-01
    • 1970-01-01
    相关资源
    最近更新 更多