دسته بندی ها
10:46 1404/01/28

حذف آیتم های خالی یا null در یک List در سی شارپ

مشخصات سوال کننده :
کاربر : hamid_b     امتیاز کاربر : 518     رتبه کاربر : 4
دسته بندی : سی شارپ Entity Framework

به این سوال امتیاز بدهید    0
تعداد بازدید این سوال : 292
هوش مصنوعی

پاسخ هوش مصنوعی

شما می توانید از متد RemoveAll و یا با استفاده از LINQ برای حذف عناصر خالی یا null از یک List در C# استفاده کنید. در زیر چند روش برای انجام این کار آورده شده است:

روش اول: استفاده از RemoveAll

using System;
using System.Collections.Generic;

class Program
{
    static void Main()
    {
        List items = new List { "apple", null, "banana", "", "cherry", null };

        items.RemoveAll(string.IsNullOrEmpty);

        foreach (var item in items)
        {
            Console.WriteLine(item);
        }
    }
}

روش دوم: استفاده از LINQ

using System;
using System.Collections.Generic;
using System.Linq;

class Program
{
    static void Main()
    {
        List items = new List { "apple", null, "banana", "", "cherry", null };

        var filteredItems = items.Where(item => !string.IsNullOrEmpty(item)).ToList();

        foreach (var item in filteredItems)
        {
            Console.WriteLine(item);
        }
    }
}

در هر دو روش، شما می توانید آیتم های خالی و null را از لیست خود حذف کنید و فقط آیتم های معتبر را نگه دارید.

به این پاسخ امتیاز بدهید    0
امتیاز: - رتبه: -
پاسخ دهنده : Radman 20:03 1404/01/28

سلام! اگر لیستی از رشته‌ها (List<string>) داری و می‌خوای تمام آیتم‌های خالی (یا فقط شامل فاصله) رو حذف کنی، می‌تونی از LINQ استفاده کنی.

مثال:

using System;
using System.Collections.Generic;
using System.Linq;

class Program
{
    static void Main()
    {
        List&lt;string&gt; list = new List&lt;string&gt; { "Hello", "", "World", "   ", "C#", null };
        // حذف رشته های خالی یا فقط شامل فاصله و نال
        List&lt;string&gt; cleanedList = list
            .Where(s =&gt; !string.IsNullOrWhiteSpace(s))
            .ToList();
        // نمایش لیست تمیزشده
        foreach (string item in cleanedList)
        {
            Console.WriteLine(item);
        }
    }
}

خروجی:

Hello
World
C#

دستور string.IsNullOrWhiteSpace(s) باعث می‌شه رشته‌هایی که خالی هستن، فقط فاصله دارن یا نال هستن، حذف بشن.

اگه خواستی فقط رشته‌های خالی دقیقاً ("") رو حذف کنی و فضای سفید مهم بود، می‌تونی اینو بنویسی:

.Where(s => !string.IsNullOrEmpty(s))

اگه خواستی به صورت دایمی از لیست حذف بشن (نه فقط برای نمایش)، همین cleanedList رو جایگزین list کن یا لیست اصلی رو با RemoveAll به‌روز کن:

list.RemoveAll(s => string.IsNullOrWhiteSpace(s));

اگه نوع داده‌ت یا ساختار متفاوت بود بگو تا دقیق‌تر راهنماییت کنم

ویرایش شده در پنج شنبه 28 فروردین 1404 ساعت 21:31:28
به این پاسخ امتیاز بدهید    3
امتیاز: 169 رتبه: 9
برای ارسال پاسخ لطفا وارد حساب کاربری خود شوید.   ورود