我在Framework 3.5上使用C#.我正在寻找快速排序Generic List<T>.为了这个例子,假设我有Person一个属性列表,其属性为lastname.如何使用lambda表达式对此List进行排序?
List<Person> people = PopulateList();
people.OrderBy(???? => ?????)
Run Code Online (Sandbox Code Playgroud) 我想存储一些像素位置而不允许重复,所以首先想到的是HashSet<Point>或类似的类.然而,与类似的情况相比,这似乎非常缓慢HashSet<string>.
例如,这段代码:
HashSet<Point> points = new HashSet<Point>();
using (Bitmap img = new Bitmap(1000, 1000))
{
for (int x = 0; x < img.Width; x++)
{
for (int y = 0; y < img.Height; y++)
{
points.Add(new Point(x, y));
}
}
}
Run Code Online (Sandbox Code Playgroud)
大约需要22.5秒.
虽然以下代码(由于显而易见的原因不是一个好的选择)只需1.6秒:
HashSet<string> points = new HashSet<string>();
using (Bitmap img = new Bitmap(1000, 1000))
{
for (int x = 0; x < img.Width; x++)
{
for (int y = 0; y < img.Height; …Run Code Online (Sandbox Code Playgroud) 假设我将一些秒转换为TimeSpan对象,如下所示:
Dim sec = 1254234568
Dim t As TimeSpan = TimeSpan.FromSeconds(sec)
Run Code Online (Sandbox Code Playgroud)
如何将TimeSpan对象格式化为如下格式:
>105hr 56mn 47sec
Run Code Online (Sandbox Code Playgroud)
是否有内置函数或我是否需要编写自定义函数?
将文本渲染到位图时,我发现当在具有非不透明alpha的区域上渲染时,文本看起来非常糟糕.随着基础像素变得更加透明,问题逐渐恶化.如果我不得不猜测我会说当底层像素是透明的时,文本渲染器将任何消除锯齿的"灰色"像素绘制为纯黑色.
以下是一些截图:
在透明像素上绘制的文字:

在半透明像素上绘制的文字:

在不透明像素上绘制的文字:

以下是用于呈现文本的代码:
g.SmoothingMode = SmoothingMode.HighQuality;
g.DrawString("Press the spacebar", Font, Brushes.Black, textLeft, textTop);
Run Code Online (Sandbox Code Playgroud) 我最近不得不重新安装 VS Code,我记得使用 Ctrl+W 来智能选择引号之间的所有内容,但现在该命令的作用是将我移动到另一个文件/选项卡?有没有办法在 VS Code 中执行此操作,Ctrl+W 对我来说非常简单,确实有助于删除或复制文本字符串。
在下面的示例中(仅用于演示目的),如果T不受类约束,则此转换:
var ret = objectA as T;
Run Code Online (Sandbox Code Playgroud)
..会导致以下编译错误:
类型参数"T"不能与"as"运算符一起使用,因为它没有类类型约束或"类"约束.
我不明白为什么我不能这样做.由于我已经限制T为接口IObject,编译器应该知道T必须是接口类型并且as操作应该是有效的.
public interface IObject
{
string Id { get; set; }
}
public class ObjectA : IObject
{
public string Id { get; set; }
}
public class ObjectFactory
{
public T CreateObject<T>(string id) where T : IObject
{
ObjectA objectA = new ObjectA();
var x = objectA as IObject; // this is good
var ret = objectA as T; // …Run Code Online (Sandbox Code Playgroud) 我在为项目添加excel引用时遇到了麻烦.我已经安装了Primary Interop Assemblies.
该项目正确检测Microsoft.Office.Interop.Word程序集引用,但仍无法找到excel引用.
当我尝试手动添加引用时,我右键单击该项目,添加引用,导航到Microsoft.Office.Interop.Excel文件并尝试手动添加它.一旦我选择参考我然后确保检查参考,然后点击确定.没有任何反应,它无法实际添加项目的引用路径.
使用VS2012旗舰版.
有关如何让项目看到excel参考的任何建议?
我决定使用这个第三方组件在我的Windows窗体中进行简单的加载控制.
http://www.codeproject.com/Articles/14841/How-to-write-a-loading-circle-animation-in-NET
打开和关闭时,这在单个请求中将属性"Active"更改为true或false(每次一个)时工作正常.问题是当进程等待服务时,我假装在进程启动之前激活loadingControl,当我"认为"该进程必须完成时关闭.当我这样做时,图像加载显示为静态图像.(没有动画).
对不起这个问题,我是C#的新手.但我认为我需要使用Threads或类似的东西.
所以我的一般代码是这样的:
using [libraries here]...;
namespace [namespace here]
{
Public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
this.loadingCircle1.Visible = false;
}
private void button1_Click(object sender, EventArgs e)
{
Thread t = new Thread(new ThreadStart(showLoading));
this.loadingCircle1.Visible = true;
t.Start();
//Import an Excel
t.Abort();
}
public void showLoading()
{
loadingCircle1.Active = true;
loadingCircle1.RotationSpeed = 10;
}
}
}
Run Code Online (Sandbox Code Playgroud)
但始终加载显示为没有动画的静态图像.
基本上我试图以与Windows计算器完全相同的方式执行数字格式化.因此,我的要求是:
number.ToString("G16").number.ToString(String.Format("#,0.{0};-#,0.{0}", New String("#"c, 15)))有关如何将这些组合在一起以获得与Windows计算器相同的行为的任何想法?
一些具有所需输出的示例:
我在下面添加了一个答案,如果使用一个字符串格式化无法实现所需的输出,我将使用该答案.如果您认为没有直接的方法来实现这一点(这是我原来的要求),请随意建议对该答案进行任何优化/更改
对不起,如果我对任何人造成某种混淆.我只是认为可能有一个简单的字符串格式来实现这一点,而且我仍然很想知道这是不是真的.
请在下面查看我在尝试重复之前尝试过的事项列表.
问题:
从昨天开始,我一直在努力解决这个问题,我读了所有关于此事的文章/文章,没有运气.虽然,我不得不承认我是ASP.NET和Web开发的新手,并且不熟悉IIS配置,所以我可能会错过一些东西.
我试过的东西:
禁用防病毒和防火墙.
通过注释::1 localhosthosts文件中的行来禁用IPv6 .我的hosts文件如下所示:
127.0.0.1 localhost
# ::1 localhost
Run Code Online (Sandbox Code Playgroud)试过不同的浏览器.
更改了应用程序URL的端口.
将应用程序URL更改为localhost:port,127.0.0.1:port但是当我这样做时,我得到:
错误请求 - 无效的主机名
卸载并重新安装IIS Express(尝试了多个版本:7.5,8.0和10.0).
尝试安装"应用程序开发功能"下Internet Information Services\World Wide Web Services.
启动VS安装程序并运行修复.
环境信息:
知道什么可能导致这个问题吗?
我刚尝试使用Jexus Manager.从此处显示的.sln文件加载配置,启动网站并尝试以下方案:
c# ×8
.net ×3
generics ×2
vb.net ×2
winforms ×2
asp.net ×1
asp.net-mvc ×1
collections ×1
drawstring ×1
excel ×1
formatting ×1
gdi+ ×1
hashset ×1
ide ×1
iis ×1
iis-express ×1
lambda ×1
list ×1
loading ×1
performance ×1
reference ×1
sorting ×1
timespan ×1