using System.Collections.Generic;
using UnityEngine;
using System.Linq;
public class Linq : MonoBehaviour
{
private string[] nameList = {
"A", "B", "C", "D", "XiaoWang"};
private string[] List_0 = {
"a", "a", "a", "B", "b", "C", "Xiao", "Xiang"};
private int[] intList = {
10, 20, 35, 66, 78, 98, 45, 23, 67};
private int[] scores = new int[] {
97, 92, 81, 60, 100, 12, 69};
void Start()
{
// FindStringUseLinq(nameList, "i");
// FindStringUseLinq_1(nameList, "XiaoWang");
// Deduplication(List_0);
// FindStringWithCharCount(nameList, 4);
// SelectDesignationNums(intList, 50);
// Order(intList, false);
// SelectNum(scores, 90);
}
/// <summary>
/// 查找某个string是否在组合中
/// </summary>
/// <param name="str">要查找的string</param>
private void FindStringUseLinq(string[] list, string str)
{
var result = list.Any(name => name == str);
Debug.Log("Find Str: " + str + " = " + result);
}
/// <summary>
/// 查找某个string是否在组合中
/// </summary>
/// <param name="str">要查找的string</param>
private void FindStringUseLinq_1(string[] list, string str)
{
var result = list.Contains(str);
Debug.Log("Find Str: " + str + " = " + result);
}
/// <summary>
/// 去除重复元素
/// </summary>
private void Deduplication(string[] list)
{
Debug.Log("----------Before--------------");
foreach (var item in list)
{
Debug.Log(item); //a a a B b C Xiao
}
var newList = list.Distinct(); //不会直接作用于原数组,所以需要赋值到一个新的变量
Debug.Log("-----------New-----------");
foreach (var item in newList)
{
Debug.Log(item); //a B b C Xiao
}
Debug.Log("-----------After-----------");
foreach (var item in list)
{
Debug.Log(item); //a a a B b C Xiao
}
}
/// <summary>
/// 在一个组合中寻找指定长度的字符串
/// </summary>
/// <param name="charNum"></param>
private void FindStringWithCharCount(string[] list, int charNum)
{
var newList = list.Where(name_ => name_.Length >= charNum);
foreach (var item in newList)
{
Debug.Log(item);
}
}
/// <summary>
/// 选出大于指定数字的数字
/// </summary>
private void SelectDesignationNums(int[] intList, int num)
{
var result = intList.Where(ints_ => ints_ >= num);
foreach (var item in result)
{
Debug.Log(item);
}
}
/// <summary>
/// 按照从小到大或从大到小排列数字
/// </summary>
/// <param name="intList">数字组合</param>
/// <param name="isBig2Small">是否从大到小排列</param>
private void Order(int[] intList, bool isBig2Small)
{
if (isBig2Small)
{
IEnumerable<int> result = intList.Where(ints_ => ints_ >= 0).OrderByDescending(n => n);
result.ToArray();
foreach (var item in result)
{
Debug.Log(item);
}
}
else
{
var result = intList.Where(ints_ => ints_ >= 0).OrderByDescending(n => -n);
foreach (var item in result)
{
Debug.Log(item);
}
}
}
/// <summary>
/// 选择集合中出大于某个数的所有数字
/// </summary>
/// <param name="ints">数字集合</param>
/// <param name="num">条件数字</param>
private void SelectNum(int[] ints, int num)
{
IEnumerable<int> result = from num_ in ints where num_ > num select num_;
foreach (var item in result)
{
Debug.Log(item);
}
Debug.Log("------AfterOrder-------");
var result_1 = result.Where(ints_ => ints_ >= 0).OrderByDescending(n => -n);
foreach (var item in result_1)
{
Debug.Log(item);
}
}
}
C# LINQ的基本使用
猜你喜欢
转载自blog.csdn.net/qq_42862278/article/details/123427320
今日推荐
周排行