You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

C# 如何从List<User>集合中获取uNames与输入uName匹配的元素索引

错误原因

你原有代码的问题如下:

  1. List<T>的索引器us[下标]仅支持传入整数下标获取对应位置的元素,不能直接传入属性名批量访问所有元素的对应属性
  2. List<T>的IndexOf方法是直接匹配集合中的完整User对象,无法直接匹配对象的单个属性值

正确实现

方案1:使用List自带的FindIndex方法(最简洁)

Console.Write("Username : ");
string inputUname = Console.ReadLine();

// 查找uNames属性与输入值匹配的第一个元素的索引,未匹配返回-1
int j = us.FindIndex(user => user.uNames == inputUname);

// 索引有效性判断
if (j >= 0)
{
    // 匹配成功的后续逻辑
    Console.WriteLine($"匹配元素索引:{j}");
}
else
{
    Console.WriteLine("未找到匹配的用户名");
}

方案2:手动遍历实现(兼容所有版本语法)

Console.Write("Username : ");
string inputUname = Console.ReadLine();
int j = -1;
for (int i = 0; i < us.Count; i++)
{
    if (us[i].uNames == inputUname)
    {
        j = i;
        break;
    }
}

注意事项

如果存在多个元素的uNames属性与输入值匹配,上述两种方案都只会返回第一个匹配项的索引;如果需要获取所有匹配项的索引,可将结果存储为List<int>类型,遍历所有元素收集符合条件的下标即可。

内容的提问来源于stack exchange,提问作者Leny Mirtasari

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.30 03:36:03