मुझे केवल क्वेरी का पहला मान प्राप्त करने की आवश्यकता है। मैं वह कैसे कर सकता हूं ?

Dictionary<int, string> dict = new Dictionary<int, string>();

dict.Add(1, "Jack");
dict.Add(2, "Peter");
dict.Add(3, "Chris");
dict.Add(4, "Peter");

var keys = from entry in dict where entry.Value == "Peter" select entry.Key limit 1;

अगर मैं सीमा का उपयोग करता हूं तो मुझे एक त्रुटि मिलती है। तो आउटपुट को सीमित करने के अन्य तरीके क्या हैं या क्वेरी से अकेले पहला परिणाम कैसे प्राप्त करें?

त्रुटि CS0103 वर्तमान संदर्भ में 'सीमा' नाम मौजूद नहीं है

c#
3
Anitha Sundaramoorthy 4 जून 2018, 08:40

3 जवाब

सबसे बढ़िया उत्तर

आप इस वाक्यविन्यास को भी आजमा सकते हैं ...

var key = dict.FirstOrDefault(v => v.Value == "Peter").Key;

संपादित करें: समझने में आसानी/कॉपी-पेस्ट करने के लिए जोड़ा गया कोड ... रेक्सटेस्टर - http://rextester.com/AIAKRZ95654

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text.RegularExpressions;

namespace Rextester
{
    public class Program
    {
        public static void Main(string[] args)
        {

            Dictionary<int, string> dict = new Dictionary<int, string>();

            dict.Add(1, "Jack");
            dict.Add(2, "Peter");
            dict.Add(3, "Chris");
            dict.Add(4, "Peter");

            var key = dict.FirstOrDefault(v => v.Value == "Peter").Key;

            Console.WriteLine(key);
        }
    }
}

अद्यतन: कृपया ध्यान दें कि FirstOrDefault() कीवर्ड का उपयोग करते समय, ?.key की आवश्यकता नहीं है, सबसे खराब स्थिति में यह 0 वापस आ जाएगा। First() का उपयोग करते समय ?.key की आवश्यकता होती है। इस भ्रम के कारण फ़्लैटर ने इस उत्तर को वोट दिया, और नीचे टिप्पणी अनुभाग से अपनी टिप्पणियों को हटा दिया। (उन्हें शायद अन्य प्रोग्रामर को First() और FirstOrDefault() के बीच इस सूक्ष्म अंतर के बारे में सचेत/सावधानी का संकेत देने के लिए इस कारक को स्वीकार करना चाहिए था और इसका उल्लेख करना चाहिए था)

2
AD8 20 जून 2019, 03:35

डिक्शनरी में शून्य आइटम होने पर First या FirstOrDefault का उपयोग करें:

var keys = (from entry in dict where entry.Value == "Peter" select entry.Key).FirstOrDefault();
1
Serve Laurijssen 4 जून 2018, 08:45

संग्रह में चार विधियाँ होती हैं जो सभी संग्रह का एक आइटम लौटाती हैं:

पहली (शर्त)
शर्त को पूरा करने वाली पहली वस्तु प्राप्त करने के लिए, यदि ऐसी कोई वस्तु नहीं है, तो यह विधि अपवाद फेंक देगी।

FirstOrDefault(शर्त)
शर्त को पूरा करने वाली पहली वस्तु प्राप्त करने के लिए, यदि ऐसी कोई वस्तु नहीं है, तो यह विधि शून्य हो जाएगी।

एकल(शर्त)
एकमात्र वस्तु प्राप्त करने के लिए जो शर्त को पूरा करती है। यदि शर्त को पूरा करने वाली वस्तुओं की संख्या 1 से अधिक या कम है, तो यह विधि अपवाद फेंक देती है।

SingleOrDefault(शर्त)
एकमात्र वस्तु प्राप्त करने के लिए जो शर्त को पूरा करती है। यदि शर्त को पूरा करने वाली वस्तुओं की संख्या 1 से अधिक है, तो यह विधि अपवाद फेंक देती है।

1
Mehrdad Tajdini 4 जून 2018, 12:39