2011-11-18 14 views
5

हम List<X> से शुरू करते हैं। एक्स के प्रत्येक ऑब्जेक्ट में वाई का प्रकार एक्स है। क्या आप से बना एक सूची बनाने के लिए एक शानदार तरीका प्रस्तावित कर सकते हैं जो List<X> के प्रत्येक तत्व जेड के लिए है? मुझे यकीन है कि List<X> पर "मैन्युअल" पुनरावृत्ति आवश्यक नहीं है। किसी भी सलाह के लिए धन्यवाद।सूची के प्रत्येक तत्व से एक विशिष्ट विशेषता निकालने के लिए (सी # में) कैसे निकालें, और इन विशेषताओं की एक नई सूची प्राप्त करें?

उत्तर

10

यदि यह List<T> होती है तो:

var newList = oldList.ConvertAll(item => item.x); 

या LINQ के साथ:

var newList = oldList.Select(item => item.x).ToList(); 

ध्यान दें कि सी # 2.0 में पहले संस्करण सामान्य प्रकार स्पष्ट रूप से उल्लेख किया पड़ सकता है:

List<Y> newList = oldList.ConvertAll<Y>(delegate (X item) { return item.x; }); 

(लेकिन यह वास्तव में पहली पंक्ति के समान 100% है)

एक स्थिर Array.ConvertAll भी है जो समान रूप से व्यवहार करता है, लेकिन सरणी के लिए।

संबंधित मुद्दे

 संबंधित मुद्दे