当前位置:编程学习 > C#/ASP.NET >>

获得第一个字母与两个小问题

比如:string Name="wjy";
我怎么把得到第一个字母w
还要不管是大小写的!
比如我存在数据库里姓名!我要把以A开头的放在一起!以B开头的放在一起,大家有没有什么好的实现方法啊

问题2:我想做一个B2C

用户名大家一般存在哪啊!Session?

购物车大家是不是都存在cookie中?

当我改变购物车的数量价格会自动跟着变化要怎么实现 --------------------编程问答--------------------

void Main()
{
var list=new List<string>{"wjy","wab","xab","xbb","yaa"};
var query=list.GroupBy(l=>l.Substring(0,1));
foreach(var q in query)
{
  Console.WriteLine("----------");
  Console.WriteLine(q.Key);
  q.ToList().ForEach(m=>Console.WriteLine(m));
}
}

/*
----------
w
wjy
wab
----------
x
xab
xbb
----------
y
yaa

*/
--------------------编程问答-------------------- string Name="wjy";
Match result = Regex.Match(Name,"[a-zA-Z]");
result.Value就是第一个字母
result.Index就是第一个字母的位置
--------------------编程问答--------------------

void Main()
{
var list=new List<string>{"wjy","Xab","yaa","Wab","xbb"};
var query=list.GroupBy(l=>l.Substring(0,1).ToLower()); //忽略大小写
foreach(var q in query)
{
  Console.WriteLine("----------");
  Console.WriteLine(q.Key);
  q.ToList().ForEach(m=>Console.WriteLine(m));
}
}

/*
----------
w
wjy
Wab
----------
x
Xab
xbb
----------
y
yaa

*/
--------------------编程问答-------------------- 我要把以A开头的放在一起!以B开头的放在一起
你不需要修改数据库中存储的顺序,查询的时候对名称排序就可以了。 --------------------编程问答-------------------- 用户名大家一般存在哪啊!Session?可以的

购物车大家是不是都存在cookie中?还是要保存数据库的,不过这个也是看你要求,淘宝购物车是保存数据库,保存1周。
--------------------编程问答-------------------- 比如:string Name="wjy";
我怎么把得到第一个字母w
还要不管是大小写的!
比如我存在数据库里姓名!我要把以A开头的放在一起!以B开头的放在一起,大家有没有什么好的实现方法

楼主存放的姓名是中文的吗?

提取第一个字符用:Substring(0,1)
如果是获取汉字的拼音首字母:

 public static  class DisposeChina
    {
        //获取简体中文字符串拼音首字母 
        public static string GetSpells(string input)
        {
            int len = input.Length;
           StringBuilder  sbVal =new StringBuilder();
            for (int i = 0; i < len; i++)
            {
                sbVal.Append(GetSpell(input.Substring(i, 1)));
            }
            return sbVal.ToString();
        }

        //获取一个简体中文字的拼音首字母 
        public static string GetSpell(string cn)
        {
            byte[] arrCN = System.Text.Encoding.Default.GetBytes(cn);
            if (arrCN.Length > 1)
            {
                int area = (short)arrCN[0];
                int pos = (short)arrCN[1];
                int code = (area << 8) + pos;
                int[] areacode = { 45217, 45253, 45761, 46318, 46826, 47010, 47297, 47614, 48119, 48119, 49062, 49324, 49896, 50371, 50614, 50622, 50906, 51387, 51446, 52218, 52698, 52698, 52698, 52980, 53689, 54481 };
                for (int i = 0; i < 26; i++)
                {
                    int max = 55290;
                    if (i != 25) max = areacode[i + 1];
                    if (areacode[i] <= code && code < max)
                    {
                        return System.Text.Encoding.Default.GetString(new byte[] { (byte)(65 + i) });
                    }
                }
                return "?";
            }
            else
                return cn;
        }
    } --------------------编程问答-------------------- 大家也回答一下我第二个问题啊B2C的!

大家有什么好的建议啊!谢谢的 --------------------编程问答-------------------- --------------------编程问答--------------------

//直接排序就可以了,相同的字母,就会在一起。 分组 可能会好处理一点。
var list1 = new List<string> { "wjy", "Xab", "yaa", "Wab", "xbb" };
var query = list1.OrderBy(l => l.Substring(0, 1));
var query1 = list1.ToArray().OrderBy(l => l[0]); //l[0] 索引访问 第一个元素
 
--------------------编程问答--------------------
问题一:
个人还是习惯数据库操作,
方法一是 查询出来的时候加个排序 order by upper(name) 
方法二是 以name 字段建立 聚集索引,那你搜索出来的结果就自动按照name 排序了.

问题2:

存于 Session,cookies,数据库里都行
数量改后总额跟着改 可以写一段 javascript
--------------------编程问答--------------------

select * from table
order by left(Name,1)

从数据库中取数据的时候,直接排序。 --------------------编程问答-------------------- 看到问题想到了我刚做项目的时候,什么都要学习,csdn是个不错的学习平台,好好学习吧,百度也可以的 嘿嘿 。。。
补充:.NET技术 ,  ASP.NET
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,