LINQ का उपयोग कर किसी अन्य वस्तु के भीतर एक वस्तुओं के गुण का उपयोग करने की

वोट
0

मैं एक एक और वस्तु के भीतर एक वस्तु से एक मूल्य प्राप्त करने की आवश्यकता। मेरी समस्या मैं subobject के भीतर से कोई भी मान उपयोग नहीं कर सकते है, मैं हमेशा वस्तु के मूल्य में ही टाइप मिलता है।

कोड मैं कहाँ वस्तु तक पहुँचने कर रहा हूँ

var test = scheduledTask.Fields.Select(x => x.FieldValue);

इस परिणाम को ध्यान में रखते वापस लाता है

[0] 10111
[1] {ObjectType.Extension} 

मैं [1] तत्व है जो निम्नलिखित गुण (अन्य लोगों के) शामिल हैं का उपयोग करने की जरूरत है, और मैं DisplayName का उपयोग करने की जरूरत है

{
DisplayName: MainMenu,
CategoryId: -1,
Id: 433
}

ScheduledTask है

{
Fields: {Fields.Field[2]},
LastModifiedDate:null,
{Fields.Field[2]}
}
03/12/2019 को 00:03
का स्रोत उपयोगकर्ता
अन्य भाषाओं में...                            


2 जवाब

वोट
0

मान लिया जाये कि x.FieldValueएक है objectआप अगर यह इस प्रकार का है की जाँच करने के कास्टिंग की कोशिश कर सकते ObjectType.Extension:

var test = scheduledTask.Fields.Select(x => {
   var asExtension = x.FieldValue as ObjectType.Extension;
   if(asExtension != null) return asExtension.DisplayName;
   else return x.FieldValue;
});

अनुमानित समय asऑपरेटर सुरक्षित कलाकारों कि रिक्त वापस आ जाएगी अगर एलएचएस बहस के क्रम प्रकार स्थिर प्रकार आरएचएस तर्क से पहचान से मेल नहीं खाता का एक प्रकार है।

03/12/2019 को 00:07
का स्रोत उपयोगकर्ता

वोट
2

आप एक सरणी के एक विशिष्ट सूचकांक का उपयोग करने की LINQ जरूरत नहीं है।

string name = (scheduledTask.Fields[1].FieldValue as ObjectType.Extension)?.DisplayName;

के बाद से सरणी विभिन्न प्रकार के मान हैं मुझे लगता है कि हम की एक सरणी है object। इसलिए हम उम्मीद प्रकार के डाली पहुँच विशिष्ट क्षेत्रों या गुण के लिए सक्षम होना चाहिए।

मामले में मान शून्य है या प्रकार से मेल नहीं खाता asनिकलेगा null। अशक्त-सशर्त ऑपरेटरों ?.एक सदस्य या तत्व का उपयोग आपरेशन ही अगर एक संकार्य में गैर-शून्य है और नहीं तो वापसी करता है null

आप आवश्यक मूल्य के सूचकांक पता नहीं है, तो आप के साथ क्वेरी कर सकता है

string name = (scheduledTask.Fields
    .Select(x => x.FieldValue)
    .OfType<ObjectType.Extension>()
    .FirstOrDefault()
)?.DisplayName;

आप कर रहे हैं यकीन है कि आवश्यक मान वहाँ और नहीं रिक्त है, तो आप ड्रॉप कर सकते हैं ?

03/12/2019 को 00:11
का स्रोत उपयोगकर्ता

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more