2010-03-15 10 views
6

यह बहुत आसान होना चाहिए, लेकिन मैं LINQ पर नया हूं। मेरे पास FillList structs के List<FillStruct> हैं। मैं LINQ का उपयोग एक नया List<NewFillStruct> बनाने के लिए करना चाहता हूं जहां खरीद और बिक्री की संख्या होने की बजाय, मेरे पास एक चर होगा जिसमें योग होगा।पुरानी सूची से नई सूची बनाने के लिए LINQ और C# का उपयोग करें

उदाहरण के लिए, यदि FillStruct संरचना

buy = 4 

और

sell = 2 

है तो NewFillStruct संरचना

numlong = 2. 

FillStruct संरचना

है होगा
buy = 2 

और

sell = 4 

तो NewFillStruct संरचना

numlong = -2. 

यहाँ होगा संरचनाएं हैं।

struct FillStruct 
{ 
    int buy; 
    int sell; 
    string date; 
} 

struct NewFillStruct 
{ 
    int numlong; 
    string date; 
} 

उत्तर

16
List<FillStruct> origList = ... 
List<NewFillStruct> newList = origList.Select(x => new NewFillStruct { 
    numlong = x.buy - x.sell, date = x.date 
}).ToList(); 

हालांकि, ध्यान दें कि struct इस के लिए एक अच्छा विकल्प (पसंद करते हैं class जब तक आप एक अच्छे कारण के लिए) नहीं जरूरी है।

या LINQ पूरी तरह से बचने के लिए:

List<NewFillStruct> newList = origList.ConvertAll(x => new NewFillStruct { 
    numlong = x.buy - x.sell, date = x.date 
}); 
2

यह गणनीय "fillstructs" से अपने सभी डेटा का चयन करें और परिकलित मानों युक्त "NewFillStruct" का एक गणनीय पैदा करेगा।

var newfills = from fillstruct in fillstructs 
       select new NewFillStruct 
       { 
        numlong = fillstruct.buy - fillstruct.sell, 
        date = fillstruct.date 
       }; 
संबंधित मुद्दे