在内存中表示数据的可能方法(.net)

时间:2010-12-23 07:34:11

标签: .net data-structures

在.Net(或一般)中在内存中表示数据的可能方法是什么? 如果可以按键(或多个键)对数据进行排序和查找,那将会很棒。 我们正在考虑使用集合,数组,集合/数组列表。一个对象将在几个集合中(一个排序为asc,其他desc等)。

也许这不是一个好主意,我们希望听到其他一些可能的解决方案。

谢谢

3 个答案:

答案 0 :(得分:1)

  

在.Net(或一般)中在内存中表示数据的可能方法是什么?

在.NET中,您有两种类型:value types and reference types,可以在内存中以不同方式存储。此外,CLR还有责任决定如何在内存中表示数据,以便开发人员不必担心它。

  

如果可以按键(或多个键)对数据进行排序和查找,那就太棒了

您可以查看Dictionary<TKey, TValue>课程。您还有static arraysdynamic lists,...(此列表很大)

答案 1 :(得分:0)

这是一个非常广泛的问题。请参阅:data structures

.NET库包含classes which represent many commonly used data structures

答案 2 :(得分:0)

正如Mud所说,这是一个非常普遍的问题,所以你可能需要更具体一点来准确回答你想要的东西。

通常,.NET提供所有“普通”集合类型(字典,列表等),就像所有其他优秀语言一样。此外,.NET提供了LINQ,它非常适合排序和查询集合。 e.g。

var array = new string[] {"banana", "pineapple", "apple", "cherry"};

// basic sorting
var sortedArray = array.OrderBy(a => a).;

foreach (var s in sortedArray)
{
    Console.WriteLine(s);
}

// filtering
var filteredArray = array.Where(a => a.Contains("apple"));

foreach (var f in filteredArray)
{
    Console.WriteLine(f);
}

LINQ将适用于任何类型的集合。要使用它,您需要.NET 3.5或更高版本,并且必须添加using System.Linq才能访问必要的扩展方法。