获得第一个字母与两个小问题
比如:string Name="wjy";我怎么把得到第一个字母w
还要不管是大小写的!
比如我存在数据库里姓名!我要把以A开头的放在一起!以B开头的放在一起,大家有没有什么好的实现方法啊
问题2:我想做一个B2C
用户名大家一般存在哪啊!Session?
购物车大家是不是都存在cookie中?
当我改变购物车的数量价格会自动跟着变化要怎么实现 --------------------编程问答--------------------
--------------------编程问答-------------------- string Name="wjy";
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
*/
Match result = Regex.Match(Name,"[a-zA-Z]");
result.Value就是第一个字母
result.Index就是第一个字母的位置
--------------------编程问答--------------------
--------------------编程问答-------------------- 我要把以A开头的放在一起!以B开头的放在一起
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
*/
你不需要修改数据库中存储的顺序,查询的时候对名称排序就可以了。 --------------------编程问答-------------------- 用户名大家一般存在哪啊!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