2010-12-23 2 views
-1

.Net (또는 일반적으로)의 메모리에서 데이터를 표현하는 방법은 무엇이 있습니까?
데이터를 정렬하고 키 (또는 여러 키)로 조회 할 수 있다면 좋을 것입니다. 우리는 컬렉션, 배열, 컬렉션/배열 목록을 사용하려고 생각하고 있습니다. 하나의 객체는 여러 컬렉션에 있습니다 (하나는 오름차순 정렬, 다른 desc는 등).메모리에서 데이터를 표현하는 가능한 방법 (.net)

어쩌면 이것은 좋은 생각이 아니므로 가능한 다른 해결책을 듣고 싶습니다.

는 당신에게 감사

답변

1

닷넷 (또는 일반) 메모리에 데이터를 나타내는의 가능한 방법이 무엇입니까?

.NET에는 두 가지 종류가 있습니다. value types and reference types 메모리에 다르게 저장할 수 있습니다. 또한 개발자가 걱정할 필요가 없도록 메모리에 데이터를 표현하는 방법을 결정하는 것은 CLR의 책임입니다. 데이터 정렬 키 (또는 여러 개의 키)로 조회 할 수 있다면

당신은 Dictionary<TKey, TValue> 클래스를 살펴 걸릴 수 있습니다 좋은 것입니다. static arrays, dynamic lists, ... (이 목록은 막대 함)

+0

안녕하세요, 어떤 구조로 대부분 시간을 사용합니까? 사전이나 다른 것? 감사합니다 –

+0

@이게 그 대답은 내가 뭘하려고하는지에 달렸어. –

+0

Bookkeepeing 앱이 많은 거래를 RAM에 저장해야하는 경우 날짜 범위, 유형, 상태, 고객 번호 등으로 액세스 할 수 있어야합니다. 원하는대로 이러한 매개 변수 중 하나를 필터링 할 수 있습니다. bookkeping 앱에서 사용할 데이터 구조는 무엇입니까? 감사. –

0

머드 (Mud)가 말했듯이, 이것은 꽤 일반적인 질문이므로, 여러분이 원하는 것에 대한 정확한 대답을 위해 좀 더 구체적 일 필요가 있습니다.

일반적으로 .NET은 다른 모든 좋은 언어와 마찬가지로 모든 '일반'컬렉션 유형 (사전, 목록 등)을 제공합니다. 또한 .NET은 LINQ를 제공합니다. LINQ는 컬렉션 정렬 및 쿼리에 훌륭합니다. 예 :

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을 추가해야합니다.

+0

안녕하세요, LINQ의 성능에 관한 귀하의 경험은 무엇입니까?성능이 중요하지 않은 애플리케이션에서도 사용할 수 있습니까?하지만 매우 중요합니다. 감사합니다 –

+0

쿼리가 잘 구성되어 있으면 성능이 전반적으로 우수합니다. 실제로 쿼리가 구축되었지만 결과가 필요할 때까지 실제로 실행되지 않기 때문에 대부분의 경우 성능이 '기존'코드보다 성능이 우수합니다. 이렇게하면 DB 네트워크 왕복 수를 줄이거 나 처리해야하는 데이터를 줄일 수 있습니다. http://blogs.msdn.com/b/charlie/archive/2007/12/09/deferred-execution.aspx를 참조하십시오. Linq 및 Linq 학습에 대한 권장 사항은 다음과 같습니다. http://www.albahari.com/nutshell/linqquiz.aspx –

관련 문제