开发者

how to make this better code and more optimized

so i am displaying first letter of the each Name starting from A and all the way to Z

some thing like this:

A

Anthony

Allan

...

B

Bob

Builder

....

C

Charyl

Carl

...

Z

Zoah

....

how can i make this code more optimized and use less line?

int _a = 0;
int _b = 0;
int _c = 0;
...
...
..
int _z = 0;

protected void ListItem(List<Customer>.Enumerator cust)
{

if (cust.MoveNext())
 {
    Customer t = cust.Current;

string[] list = { "a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m", "n", "o", "p", "q", "r", "s", "t", "u", "v", "w", "x", "v", "z" };
var output = list.Aggregate("", (current, listitem) => current + (Environment.NewLine + "<h1 id='" + listitem.ToUpper() + "'><span>" + listitem.ToUpper() + "</span></h1>"));
string _name = t.Name.Substring(0, 1).ToUppe开发者_运维问答r();


if (_name == list[0].ToUpper())
{
   if (_a == 0)
   {
      l = new Literal();
      l.Text = "<h1 id='A'><span>A</span></h1>" + Environment.NewLine;
      .....
      _a = 1;
  }
if (_name == list[1].ToUpper())
{
  if (_b == 0)
  {
    l = new Literal();
    l.Text = "<h1 id='B'><span>A</span></h1>" + Environment.NewLine;
    .....
    _b = 1;
  }
}
...
....
....
...

doing through Z

}


List<Customer> myList;


//produces a sequence of strings with the format:
//<h1 id="A"><span>A</span></h1>
//Anthony<br />
//...
var stringValues = 
    myList
        .GroupBy(c => c.Name[0].ToUpper())
        .OrderBy(g => g.Key)
        .Select(g => string.Format(
            "<h1 id=\"{0}\"><span>{0}</span></h1>{1}\n",
            g.Key,
            g.Aggregate("", (a,i) => string.Format(
                "{0}<br />\n",
                i.Name))));

foreach(var stringValue in stringValues)
{
    var l = new Literal();
    li.Text = stringValue;
    //not sure what you're doing with the literal from here...
}


I will change the repeated code with this idea.

List<char> HeaderOf = new List<char>();

protected void ListItem(List<Customer>.Enumerator cust)
{
    if (cust.MoveNext())
    {
        Customer t = cust.Current;
        string[] list = { "a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m", "n", "o", "p", "q", "r", "s", "t", "u", "v", "w", "x", "v", "z" };
        var output = list.Aggregate("", (current, listitem) => current + (Environment.NewLine + "<h1 id='" + listitem.ToUpper() + "'><span>" + listitem.ToUpper() + "</span></h1>"));

        char CheckMe = t.Name.Substring(0, 1).ToUpper()[0];
        if (!HeaderOf.Contains(CheckMe))
        {
            HeaderOf.Add(CheckMe);

            l = new Literal();
            l.Text = "<h1 id='" + CheckMe + "'><span>" + CheckMe + "</span></h1>" + Environment.NewLine;
        }
    }
}
0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜