Tag: 列表

是否有.NET集合接口阻止添加对象?

我有一个维护另一个类的对象列表的类。 对象列表是公共属性。 我想阻止用户直接添加和删除对象列表,如下所示: MyObject.MyListProperty.Add(object); 相反,我希望他们使用将在内部进行一些处理然后将对象添加到列表的方法。 我有一些想法: 创建List后代并覆盖添加和删除 通过属性getter返回列表的新副本(列表相对较短,不超过30个对象) 是否有一些没有添加和删除的集合界面? 编辑: 我将使用ReadOnlyCollection 。 原因是可以更新包装集合,并且只读对象中的更改将立即可见(请参阅ReadOnlyCollection和AsReadOnly() MSDN代码示例)。 这允许只读一次创建只读列表。 IEnumerable的问题是对象可以被转换回原始List然后直接操作。

在C#中排序列表

所以我有这个C#列表: List gridMessages = new List(); 每个JQGridMessage都有一个名为age的属性。 按年龄(最小的第一个)排序此列表的最快捷,最有效的方法是什么。 年龄是一个int。 谢谢!

列出并发删除和添加

我不太确定,所以我想我会问。 将项目删除并添加到System.Collections.Generic.List对象是非线程安全的吗? 我的情况: 收到连接后,它会被添加到列表中,但同时也会有一个正在删除死连接的工作人员等。 有问题吗? 会lock吗? 我也想知道我是否可以使用它的Foreach方法对列表对象使用锁。

如何将列表转换为多维数组?

我有以下方法签名: public void MyFunction(Object[,] obj) 我创建了这个对象: List<List> obj = new List<List>; 有没有一种简单的方法可以将其转换为Object[,] ? 更新: 事实是我喜欢使用List因为我可以轻松添加一个新项目。 有没有办法可以声明我的List对象以满足这种需要? 我知道Object[,]的列数Object[,]但不知道行数。

列出到T 而不复制

我有一大堆需要提供给OpenGL的值类型。 如果这种情况尽快发生会很棒。 我现在正在做的是这样的: List VList = new List(); … //Add vertices Vertex[] VArray; VList.CopyTo(VArray, VList.Length); GL.SetData(…, VArray); 这个列表很容易10MB大,所以复制很慢。 我可以不复制地执行此操作,就像以某种方式获取指向List内部使用的数组的指针一样? 或者我是否必须实现自己的List类.. 编辑:我忘了提到我不知道将添加到列表中的元素数量。

对列表<Tuple >进行排序

我将如何使用元组的第一个元素作为确定顺序的值,按降序排序,使用List<Tuple>进行排序? 它必须是就地的,我只知道如何使用LINQ返回一个新列表。

WriteLine与一个类

我正在制作一个学习C#的SchoolApp程序,我有这个主要function,我正在努力工作: namespace SchoolApp { class Program { public static void Main(string[] args) { School sch = new School(“Local School”); sch.AddStudent(new Student { Name = “James”, Age = 22 }); // this function sch.AddStudent(new Student { Name = “Jane”, Age = 23 }); Console.WriteLine(sch); // this implementation } } } 学校class级: namespace SchoolApp { class School […]

使用asp.net和C#列出目录中的文件夹

.aspx文件: Explorer .CS文件: using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; using System.IO; public partial class view2 : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { string path = “~/”; GetFilesFromDirectory(path); } private static void GetFilesFromDirectory(string DirPath) { try { DirectoryInfo Dir = new DirectoryInfo(DirPath); FileInfo[] FileList = Dir.GetFiles(“*.*”, SearchOption.AllDirectories); […]

声明类型列表

我想基本上声明一个包含类型的列表: List types = new List() {Button, TextBox }; 这可能吗?

用于在C#2.0中同步两个IList的最佳算法

想象一下以下类型: public struct Account { public int Id; public double Amount; } 在C#2.0中同步两个IList的最佳算法是什么? (没有linq)? 第一个列表(L1)是引用列表,第二个列表(L2)是根据第一个列表同步的列表: 必须从L2中删除L2中不再存在的L2中的所有帐户 必须更新L1中仍存在于L1中的所有帐户(金额属性) 所有在L1中但尚未在L2中的帐户必须添加到L2 ID标识帐户。 找到一个天真的工作算法并不难,但我想知道是否有一个智能解决方案来处理这种情况而不会破坏可读性和性能。 编辑 : 帐户类型无关紧要,可以是类,具有属性,平等成员等。 L1和L2未排序 L2项目不能被L1项目替换,必须更新(逐个字段,属性按属性)