C#怎么把list中某个元素出现n次后的内容存入另一个list

比如一个list……"a""b""a""b""c""a""1""b"……怎么把出现第n个"a"以及之后出现的所有内容(包括不是a的)存入另一个LIST?... 比如一个list
……
"a"
"b"
"a"
"b"
"c"
"a"
"1"
"b"
……
怎么把出现第n个"a"以及之后出现的所有内容(包括不是a的)存入另一个LIST?
展开
 我来答
阳光的雷咩咩
推荐于2016-01-07 · TA获得超过1.4万个赞
知道大有可为答主
回答量:2.3万
采纳率:66%
帮助的人:7847万
展开全部
        static void Main(string[] args)
        {
            List<string> lst = new List<string> 
            { "a", "b", "a", "b", "c", "a", "1", "b" };

            foreach (string s in F(lst, "a", 2))
                Console.Write(s + " ");
            Console.ReadLine();
        }

        static List<string> F(List<string> lst, string a, int n)
        {
            //这前面还要判断lst和n是否符合约束,自己加
            int i = 0;
            int cnt = 0;
            List<string> list = new List<string>();
            for (; i < lst.Count; i++)
            {
                if (lst[i] == a)
                    cnt++;
                if (cnt >= n)
                    list.Add(lst[i]);
            }
            return list;
        }
kcxnvbdbd
2014-11-15 · TA获得超过523个赞
知道小有建树答主
回答量:885
采纳率:50%
帮助的人:618万
展开全部

我也来写一个吧

List<string> Fun(List<string> list, string a, int n)
{
    var aa = from a1 in list.Select((x, i) => new { x, i })
             where a1.x == a
             select new { a1.x, a1.i };
    return list.Skip((from aaa in aa.Select((xa, xc) => new { xa, xc })
                      where aaa.xc >= n - 1
                      select aaa.xa.i + 1
                    ).ToArray<int>()[0]).ToList();
}

static void Main(string[] args)
{
    List<string> list = new List<string> { "a", "b", "a", "b", "c", "a", "1", "b", "z", "w" };
    List<string> listnew = Fun(list, "b", 2);
    Console.WriteLine(string.Join(" ", listnew));
    Console.ReadLine();
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
tonalilili
2014-11-15 · TA获得超过1.6万个赞
知道大有可为答主
回答量:8050
采纳率:71%
帮助的人:3087万
展开全部
先转换为数组list
遍历list,判断a出现的次数。当出现次数为n时,求出第n个“a”所在位置的索引。
然后用 CopyTo()把该索引开始往后的元素都复制到一个新的数组里。
把新的数组转换为集合。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式