C#练习题答案: 帮助书商!【难度:2级】--景越C#经典编程题库,1000道C#基础练习题等你来挑战

帮助书商!【难度:2级】:

答案1:

using System.Linq;

public class StockList {
  public static string stockSummary(string[] lstOfArt, string[] lstOf1stLetter) {
    if (!lstOfArt.Any()) return "";
    return string.Join(" - ",
      lstOf1stLetter.Select(c => string.Format("({0} : {1})", c, 
        lstOfArt.Where(a => a[0] == c[0]).Sum(a => int.Parse(a.Split(' ')[1])))));
  }
}

答案2:

using System;

public class StockList {

    public static string stockSummary(String[] lstOfArt, String[] lstOf1stLetter) {
        if (lstOfArt.Length == 0) {
            return "";
        }
        string result = "";
        foreach (string m in lstOf1stLetter) {
            int tot = 0;
            foreach (string l in lstOfArt) {
                if (l[0] == m[0]) {
                    tot += int.Parse(l.Split(' ')[1]);
                }
            }
            if (!String.IsNullOrEmpty(result)) {
                result += " - ";
            }
            result += "(" + m + " : " + tot + ")";
        }
        return result;
    }
}

答案3:

using System;
using System.Collections.Generic;
using System.Linq;

public class StockList {

    public static string stockSummary(String[] lstOfArt, String[] lstOf1stLetter)
    {
        if (lstOfArt.Length == 0 || lstOf1stLetter.Length == 0)
            return string.Empty;
            
        List<string> values = new List<string>();
        
        foreach (string s in lstOf1stLetter)
        {
            int sum = lstOfArt.Where(a => a.StartsWith(s)).Select(a => int.Parse(a.Split(' ')[1])).Sum();
            values.Add(string.Format("({0} : {1})", s, sum));
        }
        
        return string.Join(" - ", values.ToArray());
    }
}

答案4:

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

public class StockList {

    public static string stockSummary(String[] lstOfArt, String[] lstOf1stLetter) {
            
            if (lstOfArt.Length == 0 || lstOf1stLetter.Length == 0) { return string.Empty; }
            
            var counter = 0;
            StringBuilder builder = new StringBuilder();
            foreach (var letter in lstOf1stLetter)
            {
                foreach (var code in lstOfArt)
                {
                    var list1 = code.Split(' ');
                    if (list1[0].StartsWith(letter)) { counter = counter + Int32.Parse(list1[1]); }

                }

                builder.AppendFormat("({0} : {1}) - ",letter,counter.ToString());
                counter = 0;
            }
            
            var str = builder.ToString();
            str = str.Remove(str.Length - 3);
            return str;
    }
}

答案5:

using System;
using System.Linq;
public class StockList {

    public static string stockSummary(String[] lstOfArt, String[] lstOf1stLetter)
    {
      return !lstOfArt.Any() ? string.Empty : String.Join(" - ", (from category in lstOf1stLetter let sum = lstOfArt.Where(c => Convert.ToString(c[0]) == category).Select(v => int.Parse(v.Split(' ')[1])).Sum() select string.Format("({0} : {1})", category, sum)));
    }
}

答案6:

using System;
using System.Linq;

public class StockList {

    public static string stockSummary(String[] lstOfArt, String[] lstOf1stLetter) {
    
    if(lstOfArt.Length == 0 || lstOf1stLetter.Length == 0) return String.Empty;
    //Manageble list for calculations
    var maBookList = lstOfArt.Select(l => new Books(l));
    
    var result = lstOf1stLetter.Select( l => innerResult(l, maBookList.Where(m => m.Initial == l[0]).Sum(m => m.Quantity)));
    
    return String.Join(" - ", result);
    }
    //Internal string format helper
    private static string innerResult(string initial, int number)
    {
     return String.Format("({0} : {1})", initial, number);
    }   
}

public class Books {
 public char Initial {get; set;}
 public int Quantity {get; set;}
 public Books(string books)
 {
   Initial = books[0];
   Quantity = Convert.ToInt32(books.Split(' ')[1]);
 } 
}

答案7:

using System;
using System.Linq;
public class StockList {

    public static string stockSummary(String[] lstOfArt, String[] lstOf1stLetter) {
      return !lstOfArt.Any()
                ? String.Empty
                : String.Join(" - ", lstOf1stLetter.Select(o => String.Format("({0} : {1})", o,
                    lstOfArt.Where(l => l[0] == o[0]).Select(l => int.Parse(l.Split(' ').Last())).Sum())));
    }
}

答案8:

using System;
using System.Linq;
public class StockList {

    public static string stockSummary(String[] lstOfArt, String[] lstOf1stLetter) {
      if (lstOfArt .Length <= 0 || lstOf1stLetter.Length <= 0 )
                return "";
            string result = "";
            
            for (var i = 0; i <lstOf1stLetter.Length; i++)
            {
                int number = 0;
                foreach (var art in lstOfArt)
                {                    
                    if(art.Contains(' ') &amp;&amp; art[0].ToString() == lstOf1stLetter[i])
                    {
                        int artValue;
                        bool numberValid = int.TryParse(art.Split(' ')[1], out artValue);
                        if (numberValid)
                        {
                            number += artValue;
                        }
                    }
                }
                result += "(" + lstOf1stLetter[i] + " : " + number + ")";
                if (i < lstOf1stLetter.Length - 1)
                    result += " - ";
            }
            return result;
    }
}

答案9:

using System;
using System.Collections.Generic;
using System.Linq;

public class StockList {

        public static string stockSummary(string[] lstOfArt, string[] lstOf1stLetter)
        {
            if (lstOfArt.Length == 0 || lstOf1stLetter.Length == 0) return "";

            List<string> result = lstOf1stLetter
                .Select(p => String.Format("({0} : {1})", p, lstOfArt
                .Sum(t => (t[0].ToString() == p)? Int32.Parse(t.Split(' ')[1]) : 0)))
                .ToList();

            return string.Join(" - ", result);
        }
}

答案10:

using System;
using System.Linq;

public class StockList {

    public static string stockSummary(String[] art, String[] cd) {
            
            int[] cou = new int[26];

            for (int i = 0; i < art.Length; i++)
            {
                string kvo = "";
                char[] artch = art[i].ToCharArray();
                for (int j = 0; j < cd.Length; j++)
                {
                    if (artch[0].ToString() == cd[j])
                    {
                        for (int jj = 0; jj < artch.Length; jj++)
                        {
                            if (artch[jj] == ' ')
                            {
                                for (int jjj = jj + 1; jjj < artch.Length; jjj++)
                                {
                                    kvo += artch[jjj];
                                }
                                break;
                            }
                        }
                        cou[j] += int.Parse(kvo);
                        kvo = "";
                        break;
                    }
                }
            }
            string retur = "";
            if(cou.Take(cou.Length).Sum() <= 0){
                return retur;
            }
            for (int i = 0; i < cd.Length; i++)
            {
                retur += '(' + cd[i] + " : " + cou[i].ToString() + ')';
                if ((i + 1) == cd.Length)
                {
                    break;
                }
                else { retur += " - "; }
            }
            return retur;
    }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值