Обнаружение пустого массива без перекручивания

How can i find out an array is empty or not, without looping?!
is there any method or anything else?

Я имею в виду в некотором коде как это:

string[] names = new string[5];
names[0] = "Scott";
names[1] = "jack";
names[2] = null;
names[3] = "Jones";
names[4] = "Mesut";

// or

int[] nums = new int[4];
nums[0] = 1;
// nums[1] = 2;
nums[2] = 3;
nums[3] = 4;

или некоторый код как это:

using System;
class Example
{
    static void Main()
    {
        int size = 10;
        int counter;
        string[] str = new string[size];

        for (counter = 0; counter < size; counter++)
        {
            str[counter] = "A" + counter;
        }

        str[3] = null;

        if (counter == size)
            Console.WriteLine("Our array is full!");
        if(counter < size)
            Console.WriteLine("Our array is not full");

        for (int i = 0; i < size; i++)
        {
            Console.WriteLine(str[i]);
        }
    }
}

есть ли что-либо еще для обнаружения пустого массива без перекручивания?

0
nl ja de
@MesutDarvishian: необходимо понять это there' s никакая такая вещь как "неинициализированная клетка" - элемент матрицы с пустой указатель стоимость столь же "инициализируется" как элемент матрицы с ненулевым значением. They' ре оба просто оценивает.
добавлено автор Jon Skeet, источник
Пожалуйста, объясните точно, что вы подразумеваете под "пустым массивом". Вы имеете в виду множество, где все пункты пустой указатель ? Или множество без каких-либо пунктов в нем?
добавлено автор Oded, источник
я имею в виду пустой указатель или неинициализированную клетку
добавлено автор Masoud Darvishian, источник
я имею в виду в этой ситуации, что между именами [0] и именами [4] просто имена [2] пустые, как я могу обнаружить, что у этого множества есть одна пустая клетка?
добавлено автор Masoud Darvishian, источник

3 ответы

Множество просто содержит много элементов. Нет никакого понятия множества, являющегося "пустым" просто, потому что каждый элемент, оказывается, содержит значение по умолчанию (0, пустой указатель, или безотносительно).

If you want a dynamically sized collection, you should use something like List instead of an array.

Если вы хотите обнаружить, является ли какой-либо элемент коллекции (ли это списком, множеством или чем-либо еще) является стоимостью не по умолчанию, у вас есть , чтобы сделать это через перекручивание. (Вы не должны образовывать петли в своем исходном коде, но будет перекручивание, включенное где-нибудь...),

5
добавлено
@MesutDarvishian: I' d используют LINQ: интервал nullElements = множество. Граф (x => x == пустой указатель); .
добавлено автор Jon Skeet, источник
@MesutDarvishian, необходимо проверить каждого, пока вы не сталкиваетесь с пустым указателем, не пустым, все не пустые, или весь пустой указатель. Только другой путь, состоял бы в том, чтобы скрыть множество в другом объекте и установить некоторые флаги, поскольку подпункты назначены, должны быть особые обстоятельства, где это окупилось бы все же.
добавлено автор Tony Hopkinson, источник
я имею в виду в этой ситуации, что между именами [0] и именами [4] просто имена [2] пустые, как я могу обнаружить, что у этого множества есть одна пустая клетка?
добавлено автор Masoud Darvishian, источник

There is no other way than looping through, even LINQ also does the looping automatically. Instead, use a list<> and check if (listName!=null && listName.Length!=0)

Надежда это помогает:)

2
добавлено

Можно использовать LINQ для этого, чтобы проверить, пуст ли какой-либо элемент во множестве, просто можно сделать:

var hasNulls = myArray.Any( a => a == null );

Или если вы хотите выбрать тех с ценностями:

var notNulls = myArray.Where( a => a != null );
0
добавлено
Обратите внимание, что есть все еще петля здесь. It' s просто, что петля находится в библиотеке LINQ вместо в коде приложения. (Кроме того, необходимо использовать дефолт (T) , таким образом, код будет работать на множества типа стоимости, такие как интервал [] .)
добавлено автор Raymond Chen, источник
Microsoft Stack Jobs
Microsoft Stack Jobs
1 788 участник(ов)

Work & freelance only Microsoft Stack. Feed https://t.me/Microsoftstackjobsfeed Чат про F#: @Fsharp_chat Чат про C#: @CSharpChat Чат про Xamarin: @xamarin_russia Чат общения:@dotnettalks

Microsoft Developer Community Chat
Microsoft Developer Community Chat
584 участник(ов)

Чат для разработчиков и системных администраторов Microsoft Developer Community. __________ Новостной канал: @msdevru __________ Баним за: оскорбления, мат, рекламу, флуд, флейм, спам, NSFW контент, а также большое количество оффтоп тем. @banofbot