我需要执行许多操作,由传递字符串启动,操作过程取决于字符串是文件、文件夹还是 web url。
仅供参考 - 对于文件,我将文件复制到存储库,对于文件夹,我正在制作快捷方式 .lnk 并将其复制到存储库,对于 web url,我正在制作快捷方式 .url 并将其复制到存储库。
我开发了一个解决方案,但它不够健壮;我偶尔会因错误识别字符串而出现错误。我使用的方法是计算字符串中的点数,并应用规则:
If Dots = 1 Then... it's a file.
If Dots < 1 Then... it's a folder.
If Dots > 1 Then... it's a website.
Run Code Online (Sandbox Code Playgroud)
然后我使用我在网上找到的几个函数改进了它:
Dots = Len(TargetPath) - Len(Replace(TargetPath, ".", "")) ' Crude check for IsURL (by counting Dots)
If CheckFileExists(TargetPath) = True Then Dots = 1 ' Better check for IsFile
If CheckFolderExists(TargetPath) = True Then Dots = 0 ' Better check for IsFolder
Run Code Online (Sandbox Code Playgroud)
问题是,我仍然遇到两种情况的问题: …
我正在使用MailKit库来处理电子邮件,这些电子邮件运行良好.但是,我正在尝试将电子邮件拆分为其组成文件a)主电子邮件(无附件)b)单个附件文件,存储在文件系统上.
我可以单独保存附件,但似乎无法从电子邮件正文代码中删除它们.即它们与主电子邮件一起被保存,因此重复数据.:/
我试过了:
foreach (MimePart part in inMessage.BodyParts)
{
if (part.IsAttachment)
{
// Remove MimePart < This function isn't available on the collection.
}
}
Run Code Online (Sandbox Code Playgroud)
也尝试过:
var builder = new BodyBuilder();
foreach (MimePart part in inMessage.BodyParts)
{
if (!part.IsAttachment)
{
// Add MimeParts to collection < This function isn't available on the collection.
}
}
outMessage.Body = builder.ToMessageBody();
Run Code Online (Sandbox Code Playgroud)
如果有人可以帮忙解决这个问题,我会非常感激.
解决方案实施FYI:
private string GetMimeMessageOnly(string outDirPath)
{
MimeMessage message = (Master as fsEmail).GetMimeMessage();
if (message.Attachments.Any())
{
var multipart = message.Body as Multipart; …Run Code Online (Sandbox Code Playgroud) 假设我需要将 n=30 名学生分成 2 到 6 人一组,我从每个学生那里收集以下偏好数据:
学生姓名:汤姆
喜欢坐在一起:吉米、埃里克
不喜欢坐在一起:约翰、保罗、林戈、乔治
这暗示他们对全班其他他们没有提到的学生保持中立。
我如何才能最好地运行许多不同/随机分组安排的大量模拟,以便能够确定每个安排的分数,然后我可以选择“最佳”分数/安排?
或者,是否有任何其他方法可以计算出满足所有提供的约束的解决方案?
我想要一种可以每年在不同班级规模上重复使用的通用方法,但在每次模拟运行中,以下常量和变量都适用:
常量:学生总数、学生偏好
变量:团体规模、学生分组、不同团体安排/要测试的迭代次数
预先感谢您提供的任何帮助/建议/指示。
algorithm simulation optimization grouping mathematical-optimization