我正在创建一个日志,它由列表中的一个数组组成,数组是每个新条目,列表是日志。以下是我迄今为止试图解决的问题:
using System;
using System.Collections.Generic;
using System.Linq;
namespace Journal
{
class Program
{
static void Main(string[] args)
{
int menuChoice = 0;
List<string[]> journal = new List<string[]>();
while (menuChoice != 4)
{
Console.WriteLine("\n\t\t===Journal===");
Console.WriteLine("\t[1] New entry in the journal");
Console.WriteLine("\t[2] Search entry in the journal");
Console.WriteLine("\t[3] Show contents of the journal");
Console.WriteLine("\t[4] Exit");
Console.Write("\tChoose: ");
int.TryParse(Console.ReadLine(), out menuChoice);
{
switch (menuChoice)
{
case 1:
{
string[] entry = new string[3];
DateTime time = DateTime.Now;
entry[0] = Convert.ToString(time);
Console.Write("\n\tWrite your title: ");
entry[1] = Console.ReadLine();
Console.Write("\n\tWrite your new entry: ");
entry[2] = Console.ReadLine();
journal.Add(entry);
}
break;
case 2:
Console.Write("\n\tSearch entry in the journal: ");
string searchTerm = Console.ReadLine();
for (int i = 0; i < journal.Count; i++)
if (journal[i].Contains(searchTerm))
{
Console.WriteLine(journal[i]);
}
else
{
Console.WriteLine("\n\tYour search was not found.");
}
break;
case 3:
Console.WriteLine("\n\tJournal:");
foreach (string[] item in journal)
Console.WriteLine("\n\t" + item);
break;
case 4:
break;
}
}
}
}
}
}
我在尝试实现这一点时遇到了很多困难,但现在仍然没有。我试图做的是在数组中使用时间、标题和文本的3个索引空间,然后将这3个组合到列表中,使它们成为列表中的单个元素,因此当我搜索标题时,它们会作为一个组出现。
我试图在声明日志时使用普通字符串列表,但如果不指定要插入的索引,我就无法将数组添加到其中。当我将列表的类型更改为string[]时,foreach循环停止工作,因为它们无法将string[]转换为string,所以我将foreach循环中的字符串更改为string[],现在,当我尝试写出所有内容或搜索时,我得到的只是“System.string[]”。
这正是我现在的处境,如果有人能告诉我我做错了什么,或者告诉我如何解决这个问题,我将不胜感激。
解决这个问题的最简单方法是创建一个带有标题
、日期
和正文
属性的JournalEntry
类。在该类中,您可以重写ToString
,以生成格式化输出。
在不创建类的情况下,解决此问题的最简单方法是明智地应用少量LINQ。也可以使用String。Join
将字符串数组合并为控制台的单个字符串。WriteLine
。
要搜索标题包含搜索词的第一个条目:
var selected = journal.FirstOrDefault(item => item[1].Contains(searchTerm));
if (selected != null)
{
// selected is the first string[] with a title containing the search term.
Console.WriteLine(String.Join("\r\n", result));
}
要搜索标题中包含搜索词的所有条目,请执行以下操作:
var selected = journal.Where(item => item[1].Contains(searchTerm));
foreach (var result in selected)
{
// result is the string[] journal entry
Console.WriteLine(String.Join("\r\n", result));
}
日志
是一个字符串数组列表。日志[i]
是一个字符串数组。要打印字符串数组中的值,需要循环遍历该数组。
if (journal[i].Contains(searchTerm))
{
for (int j = 0; j < journal[i].Count; j++)
Console.WriteLine(journal[i][j]);
}
或作为Foreach
foreach(string item in journal[i])
Console.WriteLine(item);
使用linq,您可以从子列表列表中生成一个列表:
foreach(var item in journal.SelectMany(x => x))
{
// item is string
}
您需要使用系统添加。林克
当然。
当req.query.filter是一个没有空格的字符串时,比如'education'······这管用。当我试图找到一个有空格的列名时,比如'this havs空格',这个查询不起作用。我怎么才能修好这个?
问题内容: 我的长字符串不适合屏幕的宽度。例如。 为了使阅读更容易,我想到了用这种方式编写它- 但是,我意识到第二种方法使用字符串连接,并会在内存中创建5个新字符串,这可能会导致性能下降。是这样吗 还是编译器足够聪明,以至于我只需要一个字符串就可以了?我如何避免这样做? 问题答案: 我意识到第二种方法使用字符串连接,并将在内存中创建5个新字符串,这可能会导致性能下降。 不,不会。由于这些是字符串文
我使用Java EE7和GlassFish 4.1服务器来构建一个系统,基本上你可以在这个系统中发表想法,每个想法都可以有标签。我已经把实体的概念声明为: 阅读JPA:查询实体中的可嵌入列表后,我尝试通过Tag以以下方式查找: 但是我得到了一个TransactionRolledbackLocalException,原因是: 导致:java.lang.IllegalArgumentException
使用Python我试图访问一个字段是字符串格式的CSV文件,其中有一个字典列表。 一行 NameError Traceback(最近的调用最后)在 () ---- C:\Program Data\Anaconda3\lib\site-包\熊猫\core\series.py在应用(自我,功能,convert_dtype,args,**kwds)3190 其他:3191值=self.astype(对象
问题内容: 如果我有一个字符串列表,例如: 为了摆脱每个字符串中的所有s,我该怎么办?我尝试在for循环中使用或,但是它无法像正常字符串(不在列表中)那样工作。有人有建议吗? 问题答案: 尝试这个:
问题内容: 我有阵列中的国家/地区列表,我想从列表中选择一个国家/地区(可能是使用随机的?),但是我自己还没有找到答案… 这是我到目前为止所拥有的: 问题答案: 尝试: