C#基础(三十三) Find() 和FindIndex()的用法:找出满足集合List<char>特定条件的字符。

参考;https://blog.csdn.net/derek_chen2012/article/details/47170189.

其中,xxx是随机起的名字。 

using System;
using System.Collections;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace QueueSample
{
    class Program
    {
        static void Main(string[] args)
        {
            string str = "你aabbbfjalj444我";
            List<char> StringList = new List<char>();
            StringList = str.ToList();
            Console.WriteLine(str);
            Console.WriteLine(StringList[0].ToString());
            Console.WriteLine(StringList[0]);

            int a = StringList.Find(xxx => xxx.Equals( '我'));
            int b = StringList.FindIndex(xxx => xxx.Equals('我'));
            Console.ReadLine();
        }
    }
}

 

C#中,要计算`DataTable`中某一列特定字符出现的次数,并筛选出出现次数为1的字符,可以按照以下步骤操作: 1. **创建并填充DataTable**: ```csharp // 假设我们有一个DataTable dt,其中包含两列:ColumnA ColumnB DataTable dt = new DataTable(); dt.Columns.Add("ColumnA", typeof(string)); dt.Columns.Add("ColumnB", typeof(string)); // 添加一些数据 dt.Rows.Add("a", "aa"); dt.Rows.Add("b", "bb"); dt.Rows.Add("c", "cc"); dt.Rows.Add("d", "dd"); ``` 2. **统计字符出现次数**: ```csharp Dictionary<string, int> characterCounts = new Dictionary<string, int>(); foreach (DataRow row in dt.Rows) { string value = row["ColumnA"].ToString(); // 或者 row["ColumnB"] foreach (char c in value) { if (!characterCounts.ContainsKey(c.ToString())) characterCounts[c.ToString()] = 0; characterCounts[c.ToString()]++; } } ``` 3. **筛选出现次数为1的字符**: ```csharp List<DataRow> singleOccurrences = dt.AsEnumerable() .Where(row => characterCounts[row.Field<string>("ColumnA")] == 1) // 或者 row.Field<string>("ColumnB") .ToList(); ``` 4. **汇总结果到新的DataTable**: 创建一个新的DataTable来保存结果,只包含单次出现的字符及其对应的行。 ```csharp DataTable resultDt = new DataTable(); resultDt.Columns.Add("Character", typeof(char), "ColumnA"); resultDt.Columns.Add("RowNumber", typeof(int), "RowNumber"); foreach (KeyValuePair<char, int> kvp in characterCounts.Where(kvp => kvp.Value == 1)) { DataRow newRow = resultDt.NewRow(); newRow["Character"] = kvp.Key; newRow["RowNumber"] = dt.Rows.IndexOf(dt.Rows.Find($"Value like '%{kvp.Key}%'")); // 注意这里假设列名是"Value" resultDt.Rows.Add(newRow); } ``` 现在,`resultDt` 中就包含了那些在原`DataTable`中仅出现一次的字符以及它们所在的行号。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

我爱AI

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值