Files
downkyicore/DownKyi.Core/Utils/ListHelper.cs
yaobiao131 f744d264e0 fix: 优化项目代码
1、修复部分字幕下载问题
2、修复自定义aria2设置出错问题
2025-03-19 21:54:14 +08:00

66 lines
1.8 KiB
C#
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

using System.Collections.ObjectModel;
namespace DownKyi.Core.Utils;
public static class ListHelper
{
/// <summary>
/// 判断ObservableCollection中是否存在不存在则添加
/// </summary>
/// <typeparam name="T"></typeparam>
/// <param name="list"></param>
/// <param name="item"></param>
public static void AddUnique<T>(ObservableCollection<T> list, T item)
{
if (!list.Contains(item))
{
list.Add(item);
}
}
/// <summary>
/// 判断List中是否存在不存在则添加
/// </summary>
/// <typeparam name="T"></typeparam>
/// <param name="list"></param>
/// <param name="item"></param>
public static void AddUnique<T>(List<T> list, T item)
{
if (!list.Exists(t => t.Equals(item)))
{
list.Add(item);
}
}
/// <summary>
/// 判断List中是否存在不存在则添加
/// </summary>
/// <typeparam name="T"></typeparam>
/// <param name="list"></param>
/// <param name="item"></param>
/// <param name="index"></param>
/// <param name="currentSelection"></param>
public static void InsertUnique<T>(Collection<T> list, T item, int index, ref T currentSelection)
{
if (!list.Contains(item))
{
list.Insert(index, item);
}
else
{
var previousSelection = currentSelection;
list.Remove(item);
list.Insert(index, item);
if (previousSelection != null && previousSelection.Equals(item))
{
currentSelection = previousSelection;
}
}
}
public static void InsertUnique<T>(Collection<T> list, T item, int index)
{
T defaultSelection = default;
InsertUnique(list, item, index, ref defaultSelection);
}
}