我不知道散列是否是正确的词,但我想将一个字符串半随机转换为十六进制或argb颜色.
我使用了string.GetHasCode函数,但结果偏向于绿色:
string[] list = { "Test String", "something else", "Test Hooray" };
foreach (string k in list)
{
string x = k.ToUpper().GetHashCode().ToString("X8");
Console.WriteLine("#" + x.Substring(0,6));
}
Run Code Online (Sandbox Code Playgroud)
理想情况下,我喜欢以类似前缀开头的字符串,以使颜色大不相同.例如,"Test String"和"Test Hooray"应该完全不同,因为它们都以"Test"开头.
我并不担心绝对的解决方案,我只想要一些足够好的东西.列表[]一次最多只有10个元素,大部分时间只有2,3或4.这意味着颜色必须与2或3种其他颜色不同.
我基本上生成一个可视列表,颜色引用名称,但名称应始终映射到相同的颜色.
编辑:示例输出:
#66BD44
#7EC83E
#95E4FE
Run Code Online (Sandbox Code Playgroud)
颜色:http://www.colorcombos.com/combotester.html? color0 = 66BD44&color1 = 7EC83E&color2 = 95E4FE&color3 = 000316
我在asp.net webform上有三个文本框,我是如何/可以使用必需的字段验证器来确保其中至少有一个包含文本?
我在linqtosql中有一个返回LabelNumber的查询:
var q = from list in db.Lists
select list.LabelNumber;
Run Code Online (Sandbox Code Playgroud)
var q然后成为一个IEnumerable<string>像这样的元素:
{"1","2","2.A","2.B","3","3.A","3.B"}
Run Code Online (Sandbox Code Playgroud)
我基本上想要按照上面的顺序排序元素,但是我不能使用OrderBy(x=>x.LabelNumber)因为它"10"会在"1"之前和之后放置"2".
我假设我必须编写自定义比较器函数,但我如何使用linq执行此操作?
编辑:我认为下面的所有答案都有效,但必须在所有回复中添加一个警告.
如果您使用的是Linq2SQL,则无法在查询中使用数组索引.要解决这个问题,您应该有两个查询.一个从SQL读取的.第二个是排序:
var q = from list in db.Lists
select list.LabelNumber;
var q2 = q.AsEnumerable()
.OrderBy(x => int.Parse(x.LabelNumber.Split('.')[0]))
.ThenBy(x => x.Number
.Contains(".") ?
x.LabelNumber.Split('.')[1].ToString()
:
string.Empty);
Run Code Online (Sandbox Code Playgroud) 我有一个包含更多或更少段落的文本文件.文本实际上不是单词,它的逗号分隔数据; 但那并不重要.文本文件有点分为几个部分; 可以有部分和子部分.部分的划分由换行符表示不止一个换行符和子部分.
所以样本数据:
This is the, start of a, section
908690,246246246,246246
246246,246,246246
This is, the next, section,
sfhklj,sfhjk,4626246
4yw2,fdhds5juj,53ujj
Run Code Online (Sandbox Code Playgroud)
所以上面的数据包含两个部分,每个部分有三个小节.但有时,部分之间有多个空行.如果发生这种情况,我想多换行字符转换,说\n\n\n\n刚才\n\n; 我认为正则表达式可能就是这样做的.我也可能需要使用不同的换行标准,unix \n和windows \r\n.我认为这些文件可能包含多个endline编码.
这是我提出的正则表达式; 没什么特别的:
Regex.Replace(input, @"([\r\n|\n]{2,})", Enviroment.NewLine + Enviroment.NewLine}
Run Code Online (Sandbox Code Playgroud)
首先,这是一个很好的正则表达式解决方案吗?我对正则表达式不太好.
其次,我想将每个部分拆分成字符串数组中的元素:
Regex.Split(input, Enviroment.NewLine + Enviroment.NewLine)
Run Code Online (Sandbox Code Playgroud)
有没有办法结合这些步骤?
我正在尝试创建图形轴标签 - 物理文本.我知道如何获取标签并使用GDI打印它们,但我的算法不能很好地使用小数步骤进行打印.
要打印标签,我目前获得第一个标签,然后为每个标签添加一个步骤:
public static void PrintLabels(double start, double end, double step);
{
double current = start;
while (current <= end)
{
gfx.DrawString(current.ToString(),...);
current += step;
}
}
Run Code Online (Sandbox Code Playgroud)
有没有number.ToString("something")将打印出小数,如果他们在那里,否则只是整体的一部分?我首先检查开始,结束或步骤是否包含小数部分,然后如果是,则打印所有带小数的标签.
我有一个使用随机数生成其输出的函数.我希望能够用长字符串播种这些随机数; 只要字符串相同,随机数序列就会相同.这主要用于测试目的,也用于重复性.
我打算创建一个包装类,它类似于内置的System.Random类,其构造函数类似于:
MyRandom mr = new MyRandom(100, "This is a really long string...");
Run Code Online (Sandbox Code Playgroud)
这会生成一个内部数字列表,这样当调用mr.Next()时,它只返回列表中的下一个条目.当它达到100时,列表只是包装.我希望能够调用.NextDouble().这并不意味着任何高性能,我只是希望能够生成随机列表并再次使用它.
如何将长字符串转换为随机数列表.我已经考虑过用字符串的长度和潜水数n(在这种情况下为100).然后细分字符串并在每个段上调用哈希.
这是一种合理的方法吗?还是有另一种更好的方法?
我有一个字符串数组:
string[] Animals = {"Cat", "Dog", "Fish"};
Run Code Online (Sandbox Code Playgroud)
然后我想确定哪个元素包含序列"is"并返回整个元素; 在这种情况下"鱼"
如果我想找到"gh",它在列表中不存在,所以它应该返回第一个元素,在本例中为"Cat"
我试过这个linq代码,但我不认为我正在做lambda部分.
int index = Animals.Where(x => x.IndexOf("is") >= 0).First().IndexOf("is")
string result = index > 0 ? Animals[index] : Animals[0];
Run Code Online (Sandbox Code Playgroud)
此代码抛出此错误:
Exception Details: System.ArgumentNullException: Value cannot be null.
Parameter name: value
Run Code Online (Sandbox Code Playgroud)
我想我很亲近,我似乎无法得到它.
这种方法显然不是万无一失的,它应该返回可能有问题的"是"的第一个实例.我的潜在列表相当小,索引词总是唯一的.